【发布时间】:2014-12-23 16:37:29
【问题描述】:
跟进这个问题/答案
How to make Entity Framework Data Context Readonly
解决方案是让 DbQuery 类型的 DbContext 集合,但这是一个相当特殊的类型(它被埋在 EF 的命名空间中)。
那么,有一个 DbContext 和这个有什么功能区别:
public DbQuery<Customer> Customers
{
get { return Set<Customer>().AsNoTracking(); }
}
对比这个:
public IQueryable<Customer> Customers
{
get { return Set<Customer>().AsNoTracking(); }
}
...当涉及到 DbQuery 类时,EF 文档非常简单,但我更喜欢让 DbContext 由接口而不是类组成的想法,所以我想避免它。 DbQuery 类提供了哪些额外的好处?
更新
阅读答案并查看代码后,我意识到我的问题有点愚蠢。在我想之前我太快了!显然,底层的具体对象无论如何都将是一个 DbQuery,因此实际的内部功能将是相同的。在我看来,使用 IQueryable 是更好的选择。感谢您的耐心等待!
【问题讨论】:
-
你为什么不阅读源代码?
IDbQuery<T>只是有更多的方法... -
然后是 DbSet。
标签: c# .net entity-framework-5 datacontext