我正在使用具有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:INSERT语句与FOREIGN KEY约束“FK_dbo.PersonModel_dbo.TeamModel_TeamRefId”冲突。冲突发生在数据库“Tournament2”,表“dbo.TeamModel”,列'TeamId'。
答案 0 :(得分:0)
制作外键人员模型可以解决你的问题 请注意,在您创建团队
之后稍后修改它之前,创建的人将没有团队 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; }
}