确认延迟加载 linq 到我的存储库的实体 [简单]
Posted
技术标签:
【中文标题】确认延迟加载 linq 到我的存储库的实体 [简单]【英文标题】:confirm lazy loading linq to entities for my respository [simple] 【发布时间】:2010-12-22 18:28:37 【问题描述】:简单的问题:
我的存储库的一部分看起来像这样
public class CustomerRepository : IRepository<Customer>
public IQueryable<Customer> GetAll()
MyDataEntities ent = new MyDataEntities();
return from c in ent.Customers select c;
现在假设我有 10,000 个客户,如果我这样做:
var cus = from c in GetAll() where c.FirstName == "jon" select c;
请告诉我 GetAll() 不会加载所有这 10,000 个但会延迟加载整个内容?是我需要在某处设置还是自动发生?
我也不知道如何检查它是否是延迟加载的,当实际的 sql 查询被吐到 sql server 时有什么可看的吗?
对不起,我的无知。
【问题讨论】:
【参考方案1】:是的,它会的。由于您的GetAll
正在返回IQueryable
。验证这种情况发生的一种简单方法是打开分析器并查看正在执行的查询。或者在调试器中调查IQueryable
对象。
【讨论】:
你能详细说明我在哪里可以看到个人资料吗?我正在使用 sql management studio express 2008 r2 + VS 2010 好的,找到了这个但是有更新的选项:***.com/questions/760321/… 我不确定它是否包含在快速版本中。也许这个可以用:sites.google.com/site/sqlprofiler。否则,您可以使用 Visual Studio 调试器并查看cus
对象并在那里查找查询。
啊没想到以上是关于确认延迟加载 linq 到我的存储库的实体 [简单]的主要内容,如果未能解决你的问题,请参考以下文章
错误 3002:映射片段中的问题 | c# linq 到实体