首页 新闻 会员 周边

EF的相关问题

0
悬赏园豆:10 [已解决问题] 解决于 2017-05-06 18:56

IQueryable 继承了接口 IEnumable

public interface IQueryable : IEnumerable

 

为什么DbSet<TEntity>既要实现IQueryable,又要实现IEnumerable,按理只要实现IQueryable就行了。

public class DbSet<TEntity> : DbQuery<TEntity>, IDbSet<TEntity>, IQueryable<TEntity>, IEnumerable<TEntity>, IQueryable, IEnumerable, IInternalSetAdapter where TEntity : class

我的问题如下:

1、这样做有什么意义?

2、DbSet<TEntity>实现了IEnumerable,而我在DbSet<TEntity>这个类的实现里没找(通过F12查看元数据,没看源代码)到GetEnumerator方法,在他的父类DbQuery<TEntity>里也没找到。其他继承的都是接口,所以也不会有。为什么呢?

ef
weizhangxiaohan的主页 weizhangxiaohan | 初学一级 | 园豆:95
提问于:2017-05-06 05:37
< >
分享
最佳答案
1

你的第一个问题应该就是楼上说的,就算接口有继承关系,如果你看到一个接口,还得去看层次继承树看所有的接口父类,才能知道这个类到底能转化为哪些接口,还不如显示的写出来。

第二个问题DbQuery<TEnity>里是有泛型和非泛型版的GetEnumerator方法的。

收获园豆:10
ぁ丶泛滥的尐青春つ | 初学一级 |园豆:199 | 2017-05-06 15:45
其他回答(1)
0

唯一的好处是让看代码的人方便点.

吴瑞祥 | 园豆:29449 (高人七级) | 2017-05-06 09:14
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册