0

LINQ 式の作成に助けが必要です。私はラムダ構文を使用する傾向があります。

私は2つのテーブルを持っています

OrderItem >- LibraryItem

OrderItem にはいくつかの列があります。

Id
FkLibraryItemId
Text
FkOrderId

LibraryItem にはいくつかの列があります。

Id
Text
Type

通常、「OrderItem」を選択するときは、「Library Item」を選択します。「Id」と「Text」の値がアイテム レコードに配置されます。

ユーザーは、"LibraryItem" テーブルに格納する必要のない "OrderItem" を 1 つ追加することがあります。これは単純に「OrderItem」に格納されますが、「FkLibraryItemId」はありません。したがって、「LibraryItem」には存在しない「OrderItem」のレコードがあります。

関連する Order Id の「OrderItem」レコードに加えて、関連する「Type=X」のすべての「LibraryItem」レコードを引き出すには、LINQ が必要です。

よろしくお願いします。

アップデート:

私は次のようなことについて話していると思います:

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 には、Include基本的に参照オブジェクトを熱心にロードするための別の構文があります (おそらくLoadWith、現時点では覚えていません)。

実際には、左内部結合でも実行できます。

于 2013-10-08T16:55:33.087 に答える