データベースに 2 つのテーブルがあります。
TableA:
Id, ColA, ColB, Value IsSelectable
1 A B value1 False
2 C D value2 True
3 K M value3 True
TableB:
Id, ColA, ColB
1 A B
2 K M
ここで、IsSelectable = true で、ColA が TableB の ColA に等しく、ColB が TableB の ColB に等しい場合、TableA からすべての行を選択する Linq クエリを作成します。
上記の例では、これが私の要件を満たす唯一のものであるため、行 # 3 を返したいと思います。
私はこれを試しました:
from ta in _db.TableA
from tb in _db.TableB
where ta.IsSelectable == true
&& (ta.ColA == tb.ColA && ta.ColB == tb.ColB)
select ta;
上記のクエリの問題は、デバッガーで値を表示しようとするとクエリがタイムアウトすることです。
また、TableA を TableB に結合する 2 つのテーブルを結合しようとしました。しかし、結合された結果から TableA を選択しようとすると、新しい TableA レコードを作成できません。これは、ID が作成されたデータベースであり、setter がないためです。
これどうやってするの?