请联系LINQ表达一些帮助

时间:2013-10-08 16:46:05

标签: linq linq-to-sql linq-to-entities

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

我有2张桌子

OrderItem >- LibraryItem

OrderItem有许多列:

Id
FkLibraryItemId
Text
FkOrderId

LibraryItem有许多列:

Id
Text
Type

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

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

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

非常感谢提前。

更新:

我想我说的是:

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

1 个答案:

答案 0 :(得分:1)

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

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

实际上你也可以用左内连接来做。