loadwith 和 Associatewith 之间有什么区别?从我读到的文章看来,loadwith 用于加载附加数据(例如客户的所有订单)。而AssociateWith用于过滤数据。
这是正确的理解吗?如果有人可以用基于示例的解释来解释这一点,那就太好了。
LoadWith
用于执行急切加载关联而不是默认关联惰性加载.
通常,关联会在您第一次引用它们时加载。这意味着如果您选择 100Order
实例,然后对每个实例执行一些操作Details
,你实际上正在执行101SELECT
针对数据库的操作。另一方面,如果LoadOptions
指定LoadWith<Order>(o => o.Details)
,然后这一切都在一个单一的过程中完成SELECT
添加了JOIN
.
AssociateWith
没有任何影响when关联已加载,只需what已加载。它添加了一个WHERE
每次加载关联时的子句。
正如你所说,AssociateWith
习惯于自动地过滤数据。通常,如果您知道关联具有大量元素并且您只需要其中的特定子集,则可以使用此方法。再说一次,它主要是性能优化,只是一种不同的类型。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)