c# – linq2sql中的简单EagerLazy加载示例

c# – linq2sql中的简单EagerLazy加载示例,第1张

概述有没有人在 linq2sql中有一个简单的代码示例来演示Eager Loading和Lazy Loading之间的区别? >延迟加载:对于给定的实体,它的关联集合在首次加载时可能为空,但是当首次迭代这些集合时,LINQ to SQL会在加载后触发查询以加载这些集合,然后该集合可用于未来使用而不需要其他查询: var query = from o in db.GetTable<Order>() // 有没有人在 linq2sql中有一个简单的代码示例来演示Eager Loading和Lazy Loading之间的区别?解决方法 >延迟加载:对于给定的实体,它的关联集合在首次加载时可能为空,但是当首次迭代这些集合时,liNQ to sql会在加载后触发查询以加载这些集合,然后该集合可用于未来使用而不需要其他查询:
var query = from o in db.Gettable<Order>() //db is the datacontext        select o;foreach(Order o in query){    foreach(OrderDetail d in o.OrderDetails)//Deferred loading    {       //Do something on these collections    }}

OrderDetails仅在迭代时加载,因此如果从不迭代OrderDetatils,则永远不会执行相应的查询.

> Eager Loading:立即加载所有引用实体的关联集合,例如liNQ to sql将自动为所有已检索的订单带来所有OrderDetails

DataLoadOptions op = new DataLoadOptions();op.LoaDWith<Order>(o => o.OrderDetails);db.LoadOptions = op;var query = from o in db.Gettable<Order>()          select o;foreach(Order o in query){     //Order details are eager loaded; additional querIEs are not needed    foreach(OrderDetail d in o.OrderDetails)    {       //do something    }}

请注意:延迟执行是liNQ功能,但延迟加载是liNQ to sql功能

总结

以上是内存溢出为你收集整理的c# – linq2sql中的简单Eager / Lazy加载示例全部内容,希望文章能够帮你解决c# – linq2sql中的简单Eager / Lazy加载示例所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1249706.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存