gpt4 book ai didi

c# - Linq to Entity 和加载 EntitySet

转载 作者:太空宇宙 更新时间:2023-11-03 14:10:50 24 4
gpt4 key购买 nike

这是我第一次尝试了解来自 Net Tiers 的 Linq to Entity。与它作斗争但不理解它背后的一些逻辑……例如。我什么时候使用:

Entity.EntitySet.Load()

context.Entity.Include("EntitySet").SingleOrDefault()

另外,为什么 Include 采用字符串而不是枚举或排序?

最佳答案

在 EF 中,您有延迟加载和预加载的概念。

  • 延迟加载意味着您​​可以在需要时加载数据。这是通过 Load() 方法调用完成的。
  • 预加载意味着您​​已经预先知道您将需要一些数据,因此您可以通过 Include(string) 将其加载到初始查询槽中。

Al tough Include 需要一个字符串,这并不意味着您不能扩展它!

T4 是个好东西。在我参与的一个项目中,我们创建了一个 EntityProperty 类,其中包含实体上所有导航属性的静态属性。这样,如果属性名称更改,您至少会得到一个编译错误。

如果您真的想更进一步,您可以构建一个采用 Lambda 的 Include 方法,然后在将其执行到 QueryProvider 之前重新排列表达式树。然后你就会有很好的静态类型。

关于c# - Linq to Entity 和加载 EntitySet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7912106/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com