0

我正在尝试使用 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"))
4

1 回答 1

0

存在英文产品翻译的所有客户订单

dataLoadOptions.AssociateWith<TCustomer>(c => c.Orders
  .Where(o => o.Products
      .SelectMany(p => p.ProductTranslations)
      .Any(pt => pt.Language == "En")
  )
);
于 2010-08-04T14:46:54.830 回答