0

EF5 でモデルを定義するときに問題があります。ParentIdデータベースの外部キーとして作成したいのですが、エラーが発生します:

System.Data.Entity.Edm.EdmAssociationType: : 多重度は、関係 'Category_Parent' のロール 'Category_Parent_Target' の参照制約と競合します。従属ロールのすべてのプロパティは null 非許容であるため、プリンシパル ロールの多重度は '1' でなければなりません。

ここに私のモデルがあります:

public class Category
{
    public Category()
    {
        this.Childs = new HashSet<Category>();
    }
    public int CategoryId { get; set; }
    public string Name { get; set; }
    public int ParentId { get; set; }
    public virtual Category Parent { get; set; }
    public virtual ICollection<Category> Childs { get; set; } 
}

modelBuilder.Entity<Category>()
            .HasOptional(c => c.Parent)
            .WithMany(c => c.Childs)
            .HasForeignKey(d => d.ParentId);
4

1 に答える 1

1

に がある場合とCategoryない場合がある場合ParentParentIdに値がある場合とない場合があります。

したがって、ParentIdnull 可能にします。

public int? ParentId { get; set; }
于 2013-01-07T15:27:57.470 に答える