私は次のようにsqlServerに3つのテーブルを持っています:
Cost_Types
Id COST_NAME
-------------
1 A
2 B
3 C
4 D
5 E
6 F
7 Z
およびリクエストテーブル
Id No
----------
1 100
2 200
3 300
およびCost_Request(=clearance_cost)
RequestId CostId Amount
-------------------------------
1 2 200
1 3 400
この結果を取得したい
RequestId CostId Amount
-------------------------------
1 2 200
1 3 400
1 1 0
1 4 0
1 5 0
1 6 0
私はこのコードを書きます
var context = new CLEARANCEEntities();
var items = (from c in context.COST_TYPES
join t in context.CLEARANCE_COST
on c.COST_ID equals t.COST_ID into outer
from t in outer.DefaultIfEmpty()
where t. RequestId==1
select new
{
c.COST_ID,
c.COST_NAME, I = ((t == null) ? 0 : t.COST_AMOUNT)
}).ToList();
このコードはこれを返すだけです
RequestId CostId Amount
-------------------------------
1 2 200
1 3 400
クエリを次のように変更したい場合:
var context = new CLEARANCEEntities();
var items = (from c in context.COST_TYPES
join t in context.CLEARANCE_COST
on c.COST_ID equals t.COST_ID into outer
from t in outer.DefaultIfEmpty()
where t.RequestId==2
select new
{
c.COST_ID,
c.COST_NAME, I = ((t == null) ? 0 : t.COST_AMOUNT)
}).ToList();
このデータを返す
RequestId CostId Amount
-------------------------------
2 1 0
2 2 0
2 3 0
2 4 0
2 5 0
2 6 0
私を助けてください。皆さんありがとう