当我尝试将新对象添加到导航时,我收到此错误 可能未设置集合导航属性。
这是我的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);
有人能指出我正确的方向吗?
编辑: 我忘了提到我因为多对多的关系而得到这个错误,只是在文档中读到这个还没有得到支持。
有没有机会解决方法?
答案 0 :(得分:3)
我担心唯一的解决方法是将两种类型之间的映射公开为自己的实体。
正如我在其他地方所说的那样,我并不喜欢隐藏EF m-to-m关联背后的映射对象。这种伪装似乎总是造成比它值得多的麻烦。映射获得有效负载的时刻 - 链接日期,版本,租户标识符 - 任何东西 - m到m分开并且必须定义映射对象。那个“时刻”迟早会在我的经历中到来。它越晚出现,它引起的麻烦就越多。所以我建议现在在成本低的时候公开它。这可能吗?