我有附加对象DbSet问题。实体框架6 - 添加家长带着孩子包含其他孩子
class Word
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid ID {get;set;}
public virtual ICollection<Translation> Translations {get;set;}
public virtual ICollection<Inflection> Inflections {get;set;}
}
class Inflection
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid ID {get;set;}
public virtual Word Word {get;set;}
}
class Translation
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid ID {get;set;}
public virtual Word Word {get;set;}
public virtual ICollection<Sentence> Sentences {get;set;}
}
class Sentence
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid ID {get;set;}
public virtual Translation Translation {get; set;}
}
我这样做:
DatabaseContext.UserWord.Add(entity);
DatabaseContext.SaveChanges();
这里是我的人际关系的配置:
modelBuilder.Entity<Translation>()
.HasRequired(x => x.Word)
.WithMany(x => x.Translations);
modelBuilder.Entity<Inflection>()
.HasRequired(x => x.Word)
.WithMany(x => x.Inflections);
modelBuilder.Entity<Sentence>()
.HasRequired(x => x.Translation)
.WithMany(x => x.Sentences);
我尝试创建Word对象:
{
"Id": "GUID"
"Translations": [
{
"Id": "GUID",
"Sentences": [
{
"Id": "GUID",
}
]
}
],
"Inflections": [
{
"Id": "GUID",
}
]
}
但“DatabaseContext。 SaveChanges()“抛出异常:
INSERT语句与FOREIGN KEY约束条件 “FK_dbo.Sentence_dbo.Word_WordId”冲突。冲突发生于数据库 “tempDatabase”,表“dbo.Word”,列“ID”。本声明 被终止。
一切都OK了下面的Word对象:
{
"Id": "GUID"
"Translations": [
{
"Id": "GUID"
}
],
"Inflections": [
{
"Id": "GUID",
}
]
}
我该怎么办错了吗? 你能帮我吗?
有些事情不对 - 错误消息指出'“FK_dbo.Sentence_dbo.Word_WordId”'FK,但你已经证明了什么没有这种关系。 –