私は例えば異なるテーブルLINQクエリ
からの値に基づいてテーブルを結合するために、書き込みC#のLINQをしようとしています、私は以下のように2つのテーブル表1と表2を持っています
from p in context.Table1
join label in context.Table2 on new
{
p.StatusId,
p.SubStatusId,
I = p.Dubs== 0,
J = p.Dubs> 0
} equals
new
{
label.StatusId,
label.SubStatusId,
I = label.type== 1
J = label.type== 2
} into gj
from label in gj.DefaultIfEmpty()
上記のコードは、4つの値のプロパティで2つのテーブルを結合するが、私は次のようさて、私はStatusId and SubstatusId
列で両方のテーブルを結合しようとしています
Table1
Id Name Address StatusId SubStatusId Dubs
1 ABC XYZ 1 39 10
2 PQR XYZ 1 39 0
3 ME WWW 2 39 5
4 YOU XYZ 1 22 0
5 HE XYZ 2 22 5
6 SHE WWW 2 41 0
7 XAZ XYZ 1 39 10
Table2
Id StatusId SubStatusId Status SubStatus Type
1 1 39 Dispense Ready 1
2 1 39 Fill Ready 2
3 2 22 Ship Active 0
4 2 41 Del Pending 0
5 1 22 Verify Pending 0
6 2 39 Benefit None 0
Table2
内の行の種類は、私が参加するの外に、より複雑な述語を続けるだろう
Status SubStatus
Fill Ready (1,39 Since Dubs>0 for which means should return row with type 2)
Dispense Ready (1,39 Since Dubs=0 for which means should return row with type 1)
Benefit None (2, 39 Since type=0, this should ignore Dubs)
Verify Pending (same as above)
Ship Active
Del Pending
Fill Ready (1,39 Since Dubs>0 for which means should return row with type 2)
は、それはあなたがすることに参加したいものをフォローするのは難しい、あなたが参加したデータセットがどのように見えるかの例を与えることができますか? –
@AaronRoberts予想される出力を追加 – DoIt