无法确定从属操作的有效顺序



我有这个模型:

public class ContentType
{
    public int ContentTypeId{get;set;}
    public string Name{get;set;}
    public Lang Lang{get;set;}
    public bool IsPublished{get;set;}
    public int? ParentId { get; set; }
    public int UserId { get; set; }
    public virtual User User { get; set; }
    public virtual ContentType Parent { get; set; }
    public virtual List<ContentType> Children { get; set; }
}

它与自身有一对多的关系。

在上下文中,我有这个:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity<ContentType>().HasMany(c => c.Children).WithOptional(c => c.Parent).HasForeignKey(c => c.ParentId);
    base.OnModelCreating(modelBuilder);
    modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();    
}

但是当我使用 ParentId=0 保存记录时,我看到此错误:

无法确定从属操作的有效顺序。 由于外键约束、模型,可能存在依赖关系 要求或存储生成的值。

请注意,由于以下错误,数据库中的关系不存在:

"内容类型"表 - 无法创建关系"FK_ContentType_ContentType"。 更改表语句与外键同一表冲突 约束"FK_ContentType_ContentType"。冲突发生在 数据库"CMS",表"dbo。内容类型",列"内容类型 ID"。

但我不认为问题来自这里。我不知道。

这里出了什么问题?

似乎这两个错误都是由表中不正确的数据引起的 ContentType .

"内容类型"表 - 无法创建关系 "FK_ContentType_ContentType"。更改表语句冲突 使用外键相同表约束 "FK_ContentType_ContentType"。冲突发生在数据库"CMS"中, 表"dbo。内容类型",列"内容类型 ID"。

这指向字段中ParentId值不正确。验证此字段中的值是否确实ContentTypeId其他记录中的值正确。

无法确定从属操作的有效顺序。 由于外键约束、模型,可能存在依赖关系 要求或存储生成的值。

此错误指向循环依赖项。验证数据中没有周期。

最新更新