我有两个课程,我想添加一对多的关系。
怪物只有一个位置
但
一个位置可以有很多怪物
但是当我尝试Update-Database
ALTER TABLE语句与FOREIGN KEY约束“FK_dbo.Monsters_dbo.Locations_LocationId”冲突。冲突发生在数据库“Idle”,表“dbo.Locations”,列'LocationId'。
怪物
public class Monster
{
public Monster()
{
}
public int MonsterId { get; set; }
public string Name { get; set; }
public int Gold { get; set; }
public int Experience { get; set; }
public int Level { get; set; }
public int LocationId { get; set; }
[ForeignKey("LocationId")]
public virtual Location Location { get; set; }
}
位置
public class Location
{
public Location()
{
Monsters = new List<Monster>();
}
public int LocationId { get; set; }
public string Name { get; set; }
public virtual ICollection<Monster> Monsters { get; set; }
}
答案 0 :(得分:0)
在您的上下文中,您可以使用:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Location>()
.HasMany(l => l.Monsters)
}
答案 1 :(得分:0)
尝试清除位置表中的现有数据...或者在您的Monsters表中使您的FK可以为空。