请提供一些关于联合LINQ表达式的帮助
我需要一些帮助来构造LINQ表达式。我倾向于使用Lambda语法 我有两张桌子请提供一些关于联合LINQ表达式的帮助,linq,linq-to-sql,linq-to-entities,Linq,Linq To Sql,Linq To Entities,我需要一些帮助来构造LINQ表达式。我倾向于使用Lambda语法 我有两张桌子 OrderItem >- LibraryItem OrderItem有许多列: Id FkLibraryItemId Text FkOrderId LibraryItem有许多列: Id Text Type 通常在选择“OrderItem”时,会选择“Library Item”。“Id”和“文本”值被放入项目记录中 有时,用户可能会添加一个一次性的“OrderItem”,它不需要存储在“LibraryIt
OrderItem >- LibraryItem
OrderItem有许多列:
Id
FkLibraryItemId
Text
FkOrderId
LibraryItem有许多列:
Id
Text
Type
通常在选择“OrderItem”时,会选择“Library Item”。“Id”和“文本”值被放入项目记录中
有时,用户可能会添加一个一次性的“OrderItem”,它不需要存储在“LibraryItem”表中。它只存储在“OrderItem”中,但没有“FkLibraryItemId”。因此,我在“OrderItem”中有“LibraryItem”中不存在的记录
除了相关订单Id的“OrderItem”记录外,我还需要LINQ取出所有相关的“LibraryItem”记录(Type=X)
非常感谢
更新:
我想我说的是:
LibraryItem.Select(new{Id,Text}).Union(Order.Select(new{Id, Text})
linqtosql对Include
有不同的语法,它基本上是急切地加载引用对象(可能是LoadWith
,我现在不记得了)
实际上,你也可以用左内连接 “包括”仅反映FKs引用的记录。那些不是的呢?哦,非常感谢你的帮助。它将填充外键对象,如果有空FK,它将只带主对象。啊,我想,我搞错了,让我重写一下这个的查询库。我刚刚意识到我使用的是一个,不能将“包含”与列表一起使用,或者这是可能的。如果您使用的是列表,您已经执行了查询,可能是您应该在从数据库中获取列表之前进行包含。谢谢。你让我在另一架飞机上思考。
context.OrderItems.Include("LibraryItems")
.Where(o => o.OrderId == orderId
&&(o.LibraryItem != null ? o.LibraryItem.Type == "X" : true))