2013-02-15 38 views
1

我收到此錯誤時,當我嘗試嚮導航添加新對象 收藏導航屬性可能不會設置。微風,js錯誤可能不會設置收藏導航屬性

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

有人能指出我正確的方向嗎?

編輯: 我忘了提及,我得到這個錯誤的多對多關係,只是在文檔中看到,這是不支持。

是否有任何解決方法?

回答

3

恐怕唯一的解決方法是將兩種類型之間的映射作爲自己的實體公開。

正如我在其他地方所說的,我不喜歡隱藏EF m-to-m關聯背後的映射對象。這種僞裝總是似乎造成比它值得的更多的麻煩。映射獲得有效負載的時刻 - 鏈接日期,版本,租戶標識符 - 任何事物 - m-to-m都會崩潰,映射對象必須被定義。根據我的經驗,這個「時刻」遲早會到來。它出現的越晚,它引起的麻煩越多。所以我建議現在公開它,而成本很低。這對你有可能嗎?

+0

謝謝你的回答。你能指點我一個這種類型的映射曝光的例子嗎? – 2013-02-18 21:59:50

+1

在路上。 EF m-to-m上的網絡搜索應該解釋它諮詢Julie Lerman的書。 – Ward 2013-02-19 07:43:15