我真的不明白这个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