Breeze,js错误可能未设置集合导航属性

时间:2013-02-15 19:56:04

标签: breeze

当我尝试将新对象添加到导航时,我收到此错误  可能未设置集合导航属性。

这是我的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);

有人能指出我正确的方向吗?

编辑: 我忘了提到我因为多对多的关系而得到这个错误,只是在文档中读到这个还没有得到支持。

有没有机会解决方法?

1 个答案:

答案 0 :(得分:3)

我担心唯一的解决方法是将两种类型之间的映射公开为自己的实体。

正如我在其他地方所说的那样,我并不喜欢隐藏EF m-to-m关联背后的映射对象。这种伪装似乎总是造成比它值得多的麻烦。映射获得有效负载的时刻 - 链接日期,版本,租户标识符 - 任何东西 - m到m分开并且必须定义映射对象。那个“时刻”迟早会在我的经历中到来。它越晚出现,它引起的麻烦就越多。所以我建议现在在成本低的时候公开它。这可能吗?