我試圖用一個linq語句來解決某些問題,我不知道是否可以這樣做。 我有一個表叫的價格,與此字段:使用linq標準合併兩個表
pkey: int
region: int?
product_type: int
product_size: int
price: double
desc: string
獨特的關鍵是:產品類型+ product_size
我想這樣做,返回所有行的查詢WHERE區域== 17 (這是我的第一組行) 並且想要添加區域爲空的所有行 (這是我的第二組行) 但是 如果在兩個集合中存在具有相同product_type和product_size的行,我想在最終結果中只是第一組的一排。
實施例:
pkey | region | product_type | product_size | price | desc
1, null, 20, 7, 2.70, salad1
2, null, 20, 3, 2.50, salad7
3, 17, 20, 7, 1.90, saladspecial
4, 17, 20, 5, 2.20, other
我想LINQ查詢返回該:
2, null, 20, 3, 2.50, salad7
3, 17, 20, 7, 1.90, saladspecial
4, 17, 20, 5, 2.20, other
(請注意,行與p鍵1被丟棄,因爲與p鍵3中的行具有相同的產品類型和product_size )
var query1 = from p in PRICES where p.region == 17
select p;
var query2 = from p in PRICES where p.region is null
select p;
問題:
如何連接query1和query2以獲得預期的輸出?
它可以完成只有1個查詢?
你山石人,它的工作奇妙 – DiegoGalo
有我與您的查詢的異常:「一個有效的與resultType可能不能從指定的'Then'表達式的ResultType中推斷出來。「這是爲什麼發生? – DiegoGalo
@DiegoGalo我已經測試了'lazyberezovsky'的查詢,它工作正常。 'expression'的風格使得這個查詢比'method'風格更簡潔。 –