3

データベースに 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 がないためです。

これどうやってするの?

4

1 に答える 1

1

これを試して

from ta in _db.TableA
from t in _db.TableB on new {a=ta.ColA,b=ta.ColB} equals new{a= t.ColA,b=t.ColB} 
into tc from tb in tc
where ta.IsSelectable == true
select ta;
于 2013-09-20T11:00:13.577 に答える