1

ナビゲーションに新しいオブジェクトを追加しようとすると、このエラーが発生します。コレクションのナビゲーションプロパティが設定されていない可能性があります。

これは私のPOCOです:

 public class Category : BaseEntity,IDeletable
{
    public Category()
    {
        Products = new List<Product>();
        ChildCategories = new List<Category>();
    }


    [Required]
    [Display(ResourceType = typeof(DelkaShop.Entities.EntityText.EntityText), Name = "EntityName")]
    public String Name { get; set; }

    [Display(ResourceType = typeof(DelkaShop.Entities.EntityText.EntityText), Name = "ParentCategory")]
    public int? ParentCategoryId { get; set; }

    [Display(ResourceType = typeof(DelkaShop.Entities.EntityText.EntityText), Name = "ItemsPerPage")]
    public int? ItemsPerPage { get; set; }

    [InverseProperty("Categories")]
    public ICollection<Product> Products { get; set; }

    [ForeignKey("ParentCategoryId")]
    [Display(ResourceType = typeof(DelkaShop.Entities.EntityText.EntityText), Name = "ParentCategory")]
    public  Category ParentCategory { get; set; }

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

}

そよ風の中で私はproduct.Categories.push(newCategoryObject);のような何かをしています。

誰かが私を正しい方向に向けることができますか?

編集:私は多対多の関係でこのエラーが発生していることを言及するのを忘れており、これはまだサポートされていないことをドキュメントで読んだだけです。

万が一回避策はありますか?

4

1 に答える 1

3

残念ながら、唯一の回避策は、2 つの型の間のマッピングを独自のエンティティとして公開することです。

他の場所で述べたように、マッピング オブジェクトを EF の m 対 m 関連付けの背後に隠すのは好きではありません。その変装は常に、それが価値があるよりもはるかに多くの問題を引き起こしているようです. マッピングがペイロード (リンク日付、バージョン、テナント識別子など) を取得した瞬間、m-to-m はバラバラになり、マッピング オブジェクトを定義する必要があります。その「瞬間」は遅かれ早かれ私の経験の中でやってくる。後で起こるほど、より多くのトラブルが発生します。そのため、コストが低いうちに公開することをお勧めします。それは可能ですか?

于 2013-02-16T20:37:43.000 に答える