2017-07-25 146 views
-1
  1. 有一個模型類Review。使用StoreModelMenu模型。ASP.NET核心實體框架核心繼承

在StoreModel.cs

[Table ("Stores")] 
public class StoreModel 
{ 
    [Key] 
    public int Id { get; set; } 

    public string StoreName { get; set; } 
    public string StoreShortDescription { get; set; } 
    public string StoreFullDescription { get; set; } 
    public string StoreAddress { get; set; } 

    public ICollection<MenuModel> Menus { get; set; } 
    public ICollection<ReviewModel> Reviews { get; set; } 

    public StoreModel() 
    { 
     Menus = new Collection<MenuModel>(); 
     Reviews = new Collection<ReviewModel>(); 
    } 
} 

在MenuModel.cs

[Table ("Menus")] 
public class MenuModel 
{ 
    [Key] 
    public int Id { get; set; } 

    public string MenuName { get; set; } 
    public string MenuShortDescription { get; set; } 
    public string MenuThumbnailUrl { get; set; } 
    public int MenuPrice { get; set; } 

    public ICollection<ReviewModel> MenuReviews { get; set; } 

    public MenuModel() 
    { 
     MenuReviews = new Collection<ReviewModel>(); 
    } 
} 

在這種情況下,我應該怎麼實現這一點?

  • 創建基礎ReviewModel類,並有2個亞類(StoreReviewMenuModel

  • 使用ReviewModel兩個StoreModelMenuModel(如何?)

  • 想法?
+0

請避免提出疑問,要求的意見,這是題外話:_Many好的問題基於某種程度的意見專家的經驗,但這個問題的答案往往幾乎完全基於意見,而不是事實,參考或具體的專業知識。[ – Tseng

回答

0

如果ReviewModel屬性在(StoreModel和MenuModel)中都是相同的,則沒有什麼特別的要做,只需使用ReviewModel,因爲它在您顯示的代碼中用於這兩種模型。 在任何情況下,只需將一個枚舉屬性添加到R​​eviewModel以知道它是StoreModelReview還是MenuModelReview。 你ReviewModel可能是這樣的:(創造了許多2一對多的關係)

[Table ("Reviews")] 
public class ReviewModel 
{ 
    [Key] 
    public int Id { get; set; } 

    public ReviewEnum Type { get; set; } 



    public ICollection<MenuModel> Menus{ get; set; } 
    public ICollection<StoreModel> Stpres{ get; set; } 

}

+0

]這很容易! 但我可以使用繼承? 它只適合我:D – uzu

+0

我不會使用繼承,但是如果您必須,只需創建一個基本Review類,然後創建一個基類。在菜單和商店模型中使用每一個。設置子類的表屬性。 –