0
我使用linq和lambda表達式對兩個集合進行分組。Linq加入組按條件選擇不同類型的對象
var result = firstCollection.GroupJoin(secondCollection,
s => s.Id,
p => p.Sid,
(first, second) =>
{
return new { first.Id };
});
這是有效的。但是我想按照如下條件進行選擇:
var result = firstCollection.GroupJoin(secondCollection,
s => s.Id,
p => p.Sid,
(first, second) =>
{
if (someCondition)
return new { id = first.Id };
else
return new {
id = first.Id,
name = first.Name };
});
但是這會給出錯誤。我怎樣才能做到這一點?
我不認爲你可以做到這一點,因爲你想返回有2種不同的匿名類型的集合。分開做,並在哪裏使用。 – CodingYoshi
*你得到了什麼錯誤? –
你不能這樣做,因爲EF無法確定這是哪種類型的IQueryable。 EF不能在一個查詢信息中混合兩種類型的返回對象,因爲IQueryable包含查詢類型的類型和映射信息。在執行查詢後你必須做這個選擇。 – DevilSuichiro