public class User
{
public int Id {get; set;}
public int SomeProperty {get; set;}
public virtual Group Group { get; set; }
}
public class Group {
{
public int Id {get; set;}
// other properties
}
運行此LINQ查詢:
myContext.Users.Where(u => u.SomeProperty = 4);
得到這個SQL查詢:
select
extent1.Id as Id
extent1.SomeProperty as SomeProperty
extent1.Group_Id as Group_Id
from
dbo.Users as extent1
這是奇怪的是,它決定不像駱駝那樣對其他財產進行協會專欄。這有什麼理由嗎?
在任何情況下,我加入映射代碼,試圖解決這個問題:
var entity = modelBuilder.Entity<User>();
entity.HasRequired(a => a.Group)
.WithRequiredDependent()
.Map(a => a.MapKey("GroupId"));
不幸的是,LINQ查詢產生的查詢:
select
extent1.Id as Id
extent1.SomeProperty as SomeProperty
extent1.GroupId as GroupId
extent1.Group_Id as Group_Id
from
dbo.Users as extent1
它看起來好一點,但顯然沒有按因爲我的表有GroupId列而不是Group_Id,所以還是不行。有誰知道這裏發生了什麼或如何解決它?
請看這個請:http://stackoverflow.com/a/5995211/2524304 – FSou1
'用戶 - 組'1:1?這聽起來像n-1。 –
一個組有許多用戶。用戶只能屬於一個組。 – Jordan