带E.F的Asp.net MVC5返回IQueryable或IEnumerable?

时间:2016-06-23 18:28:34

标签: asp.net-mvc ienumerable

大家好请各位帮我理解asp.net mvc5与e.f 6默认使用IQueryable或IEnumerable?我想使用IQueryable,因为它最适合底层数据库。我正在使用LINQ to entity方法和var关键字来保存linq结果。默认情况下,我的模型类的类型为public className {get; set}所以这里返回IQueryable或IEnumerable? 请帮助我

1 个答案:

答案 0 :(得分:0)

DbContext是您在使用EF6时访问数据存储的上下文。您可以使用类型DbContext或方法DbSet<TEntity>的属性访问Set<TEntity>实例上的模型(表格),这些属性也会返回DbSet<TEntity>DbSet<TEntity>实现了实现接口的抽象类DbQuery<TEntity>

  • DbQuery<TEntity>
  • IDbSet<TEntity>
  • IQueryable<TEntity>
  • IEnumerable<TEntity>
  • IQueryable
  • IEnumerable

最后,如果您还查看IQueryable的定义,您会看到它是IEnumerable的扩展名。另外IQueryable<TEntity>实现了IEnumerable<TEntity>