4

次のような「カテゴリ」エンティティがあります。

 public class Category
 {
    //<Summary>
    //Fields...
    //</Summary>

    public Guid CategoryId { get; set; }

    public string CategoryName { get; set; }

    public bool IsDelete { get; set; }

    // Fields for relationships
    public Guid MainCategoryId { get; set; }
    public Category MainCategory { get; set; }

    public virtual ICollection<Category> ChildCategories { get; set; }
 }

上記のように、同じテーブルに 0 対多の関係を作成したいと考えています。これには次のように Fluent API を使用しました。

 HasRequired(category => category.MainCategory)
            .WithMany(category => category.ChildCategories)
            .HasForeignKey(category => category.MainCategoryId);

しかし、これは 1 対多であり、0 対 1 対多ではありません。HasOptionalを使用していますが、エラーが発生します。

Fluent API でこれを行うにはどうすればよいですか?

返信ありがとう

4

1 に答える 1

6

プロパティMainCategoryIdを null 可能にします。

public Guid? MainCategoryId { get; set; }

そして、HasOptionalメソッドを使用できます:

HasOptional(category => category.MainCategory)
            .WithMany(category => category.ChildCategories)
            .HasForeignKey(category => category.MainCategoryId);
于 2013-09-21T06:19:54.763 に答える