我在两个表之间有一对多的关系(一个用户可以有多个专辑),专辑表也和其他表有关系。 问题是,当我想保存一个专辑时,FOREIGN KEY约束将发生异常,但用户存在并指定了外键。FOREIGN KEY约束例外
这里的例外:
INSERT语句冲突与外键约束 “FK_Albums_CreatedBy”。
数据库“{数据库名称}”,表“dbo.Users”,列'Id'中发生冲突。
该声明已被终止。
这是专辑的映射代码和用户在专辑类的构造函数:
this.HasRequired(t => t.CreatedBy)
.WithMany(t => t.Albums)
.HasForeignKey(d => d.CreatedById);
这是节省代码:
private void InsertAlbum(MyContext context, Album album)
{
album.Guid = Guid.NewGuid();
album.CreatedDateTime = DateTime.Now;
album.CreatedBy = context.Users.Single(u => u.UserName == "SomeUser"); // User exists and has Id = 1
album.RowVersion = Guid.NewGuid();
// Assigning other relations...
context.Albums.Add(album);
context.SaveChanges(); // This is the place that the exception occurs.
}
UPDATE
我发现错误是acctualy错误,因为白蛋白ums表与Metadatas表有着另一种一对多关系,如果我没有在专辑中插入任何元数据,我将不会收到任何异常。 现在我不确定什么会导致错误,为什么它会显示错误。
你能张贴代码为实体和配置类? –
我会启动数据库上的一个分析器来查看哪些SQL语句实际上正在执行。 –
你建议使用哪种分析器? – mrtaikandi