0
我正在使用实体框架与Id
属性执行一对多关系数据库。INSERT语句与FOREIGN KEY冲突。实体包括ForeignKey Id属性
我有两个模型类:
public class PersonModel
{
[Key]
public int PersonId { get; set; }
public string NickName { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
public int TeamRefId { get; set; }
[ForeignKey("TeamRefId")]
public virtual TeamModel TeamModel { get; set; }
}
public class TeamModel
{
public TeamModel()
{
TeamMembers = new List<PersonModel>();
this.Tournaments = new HashSet<TournamentModel>();
}
[Key]
public int TeamId { get; set; }
public string TeamName { get; set; }
public virtual ICollection<PersonModel> TeamMembers { get; set; }
public virtual ICollection<TournamentModel> Tournaments { get; set; }
public virtual MatchUpEntryModel MatchupEntry { get; set; }
public virtual MatchUpModel Matchup { get; set; }
}
当我试图创建一个新的Person
实体,我得到这个错误:
SqlException: The INSERT statement conflicted with the FOREIGN KEY constraint "FK_dbo.PersonModel_dbo.TeamModel_TeamRefId". The conflict occurred in database "Tournament2", table "dbo.TeamModel", column 'TeamId'.
具有您使用的TeamRefId的团队在TeamModel表中不存在。由于您将FKey添加到引用该表/字段的PersonModel,现在需要创建一个Person。 –
@JacobH那么,我应该以某种方式为teamrefid默认值吗? – Zackk
默认值意味着每个玩家属于同一个团队吗?这对你的数据是否正确? –