在 Linq2Sql 中提前加载实体
我正在尝试使用 LoadWith 和 AssociateWith DataLoadOptions 急切地加载实体及其相关属性(基本一对多)。然而,在查看生成的 SQL 后,我发现 LoadWith 生成的语句都是左外连接。
因此,下面的代码生成所有左外连接以获取关联属性的数据。这是为什么?有没有办法让 LoadWith 生成内部联接。我知道我可以通过简单的“Linq join”来做到这一点,但是,我喜欢 LoadWith 语法的干净和简单。提前致谢
dataLoadOptions.LoadWith(Of TCustomer)(Function(c) c.Orders)
dataLoadOptions.LoadWith(Of TOrder)(Function(o) o.Products)
dataLoadOptions.LoadWith(Of TProduct)(Function(p) p.ProductTranslations)
dataLoadOptions.AssociateWith(Of TProduct)(Function(c) c.ProductTranslations.Where(Function(t) t.Language = "En"))
I’m trying to eagerly load an entity and its related properties (basic one to many) using the LoadWith and AssociateWith DataLoadOptions. However, after looking at the generated SQL I noticed that the statements generated by LoadWith are all Left Outer Joins.
So the code below generates all left outer joins to fetch the data of the associated properties. Why is that? And is there any way to get LoadWith to generate inner joins instead. I know I can do this with a simple “Linq join”, however, I like how clean and simple the LoadWith syntax is. Thanks in advance
dataLoadOptions.LoadWith(Of TCustomer)(Function(c) c.Orders)
dataLoadOptions.LoadWith(Of TOrder)(Function(o) o.Products)
dataLoadOptions.LoadWith(Of TProduct)(Function(p) p.ProductTranslations)
dataLoadOptions.AssociateWith(Of TProduct)(Function(c) c.ProductTranslations.Where(Function(t) t.Language = "En"))
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)