我有以下簡化的設置:包括不相關的表中的LINQ到實體查詢
Public User
{
//Primary key
public int Id {get;set;}
public string Name {get; set;}
}
Public UserInfo
{
//Primary key
public int Id {get;set;}
//Foreign key to user table
public int userKey {get; set;}
}
表之間的關係是一個用戶到許多用戶信息
我試圖從user
表中選擇和包括userInfo
表。因爲從用戶表到UserInfo
表中沒有引用
var users = Context.user.Include(u => u.userInfos);
:
我不能做到這一點。
我可以這樣做:
context.userInfo.include(x => x.user)
但如果有在用戶信息表中沒有相應的條目,這將不會返回任何結果,這不是我想要的。此外,這將爲每個userInfo返回一行,而我想要一行用戶,並將userInfo列表作爲參數。
同樣地,我也加入了表所示:
var users = from us in Context.user
join inf in Context.userInfo
on us.Id equals inf.userKey
select new //etc
但是,這也將返回一行每用戶信息錄入,同樣的問題上面。
總而言之,有沒有一種方法可以用這張表來產生一個與include
函數一樣的結果。
我知道我可以調整我的設置給所有我包括這個,但這不是我在這裏問的。
我懷疑這不能做,但我所有的谷歌搜索,到目前爲止我還沒有能夠找到一個明確的答案....
我想'User'有一個屬性'UserInfos'或類似的東西? (順便說一句,請自己做個大忙,並遵守命名慣例,比如以大寫字母開頭的類名和屬性名稱)。 –
所以你正在尋找左加入linq?這裏是一個解決方案https://stackoverflow.com/questions/3404975/left-outer-join-in-linq –