0

私は単純なテーブル構造を持っています

Images(image_id, image_library_id,...)

Links(link_id, image_id, link_component_code...)

LINQ を使用して簡単なクエリを実行しようとしています

var q = from i in Images where i.Link.link_component_code = "x" select i;

ただし、LINQPad のインテリセンスは "Link" オブジェクトを提供しません。

where i.Link.link_component_code

代わりに、EntitySet である "Links" オブジェクトのみを取得し、Add、Select、Where などのメソッドだけでテーブル フィールドを一覧表示しません。

しかし、私がそれを逆にすると

var q = from l in Links where l.Image.image_library_id = 1234 select l;

期待どおりに動作します

この EntitySet とは何ですか? どこが間違っていますか?

4

2 に答える 2

1

あなたの関係が設定されている方法、各画像は 0 個以上のリンク (多数のリンク) です。Image の Links プロパティは、関連するリンク レコードのクエリ可能なコレクションです。

このwhere句を試してください

where i.Links.Any(link => link.link_component_code == "x")
于 2009-05-20T14:00:07.237 に答える
0

画像ごとに複数のリンクがありますか?そうでない場合は、Linksテーブルのimage_idフィールドを一意になるように制約します。次に、期待する結果が得られるはずです。

于 2009-05-20T22:32:02.163 に答える