我真的不明白這個EF核心1.0的錯誤?EF核心1.0外鍵問題
public class User : BaseEntity
{
public string Username { get; set; }
}
public class UserDetail : BaseEntity
{
public int UserId { get; set; }
public string Address { get; set; }
public string Country { get; set; }
public virtual User User { get; set; }
[ForeignKey("UserId")]
public virtual ICollection<UserLanguage> Languages { get; set; }
}
public class UserLanguage : BaseEntity
{
public string Name { get; set; }
public int UserId { get; set; }
}
在我的用戶表我有3個用戶
Id Username
----------- ---------------
1 john
2 doe
3 jack
在我UserDetail我有2個記錄
Id UserId Address Country
----------- ----------- -------------------------------------------------- ------
1 1 Some Address MY
2 3 NULL SG
在我的用戶語言,當執行插入
INSERT INTO UserLanguage(Name, UserId)
VALUES ('English', 3)
它會遇到下面的錯誤
The INSERT statement conflicted with the FOREIGN KEY constraint "FK_UserLanguage_UserDetail_UserId". The conflict occurred in database "Job", table "dbo.UserDetail", column 'Id'.
我在這裏做錯了什麼? ForeignKey的是userid的方式來將其指向UserDetail列「ID」
您是否真的在執行您提供的SQL語句(例如使用ExecuteSqlCommand)還是僅僅是您的EF代碼的粗略翻譯?這不太可能是EF中的一種錯誤,但是如果您正在執行SQL,則可能會發現標籤「T-SQL」和「SQL」的運氣更好 - 這聽起來更像是表配置問題而不是代碼問題。 – nemec
基本上我會使用entityframework insertasync執行插入操作,然後我得到那個錯誤。然後我編寫SQL語句並在sql ide中執行它也返回相同的錯誤消息。 – tomato45un