跟进此问题/答案
如何使实体框架数据上下文只读
解决方案是使您的DbContext集合的类型为DbQuery,但这是一个相当特殊的类型(它埋在EF的名称空间中)。
因此,具有DbContext的功能之间有什么区别:
public DbQuery<Customer> Customers
{
get { return Set<Customer>().AsNoTracking(); }
}
Run Code Online (Sandbox Code Playgroud)
与这个:
public IQueryable<Customer> Customers
{
get { return Set<Customer>().AsNoTracking(); }
}
Run Code Online (Sandbox Code Playgroud)
...关于DbQuery类,EF文档非常简单,但是我更喜欢让DbContext由接口而不是由类组成的想法,因此我想避免这种情况。DbQuery类还提供哪些其他好处?
更新资料
阅读答案并查看代码后,我意识到我的问题有点傻。我想得太快了!显然,底层的具体对象无论如何都将是DbQuery,因此实际的内部功能将是相同的。在我看来,使用IQueryable是更好的选择。谢谢你的耐心!