0

我需要一些帮助来构建 LINQ 表达式。我倾向于使用 Lambda 语法。

我有 2 张桌子

OrderItem >- LibraryItem

OrderItem 有许多列:

Id
FkLibraryItemId
Text
FkOrderId

LibraryItem 有许多列:

Id
Text
Type

通常在选择“OrderItem”时,会选择“Library Item”。“Id”和“Text”值被放入项目记录中。

有时,用户可能会添加一个不需要存储在“LibraryItem”表中的“OrderItem”。它只是存储在“OrderItem”中,但没有“FkLibraryItemId”。所以我在“OrderItem”中有“LibraryItem”中不存在的记录。

除了相关订单 ID 的“OrderItem”记录之外,我需要 LINQ 提取“Type=X”的所有相关“LibraryItem”记录。

提前谢谢了。

更新:

我想我在谈论类似的事情:

LibraryItem.Select(new{Id,Text}).Union(Order.Select(new{Id, Text})
4

1 回答 1

1
    context.OrderItems.Include("LibraryItems")
.Where(o => o.OrderId == orderId 
&&(o.LibraryItem != null ? o.LibraryItem.Type == "X" : true))

Linq-to-SQL 具有不同的语法 for Include,它基本上是预先加载引用对象(可能LoadWith,我现在不记得了)。

实际上你也可以用左内连接来做到这一点。

于 2013-10-08T16:55:33.087 回答