2016-02-22 44 views
1

作爲一種學習練習,我試圖在供應商和商店之間形成一個簡單的一對多關係,其中每個供應商都有多個商店。無法在MVC中建立一對多關係6視圖

使用兩個模型類我實現了以下內容:

Schema

這是腳手架給我的商店

ShopView

爲什麼我沒有得到下降到這裏?

截至目前沒有分享任何代碼。其中大部分是自動生成的。讓我知道是否有人希望我粘貼我的模型的代碼。

另一個疑問爲什麼我的表按字母順序排列?如果我沒有錯誤地使用實體框架6來按照類定義來排序它。有沒有辦法覆蓋它?導致視圖腳手架似乎在排序對象方面鏡像DB。

謝謝。

更新:

我在商店類添加屬性VENDORID。現在我看到了Dropdown,但沒有值。我是否需要找到Fluent API來實現這一目標?

public class Shops 
    { 
     public int Id { get; set; } 
     public String Name { get; set; } 
     public int Rank { get; set; } 
     public String Address { get; set; } 
     public Boolean Active { get; set; } 
     public int VendorId { get; set; } 
     public Vendors Vendor { get; set; } 
    } 

廠商

public class Vendors 
{ 
    public int Id { get; set; } 
    public String Name { get; set; } 
    public int Rank { get; set; } 
    public Boolean Active { get; set; } 
    public ICollection<Shops> Shops { get; set; } 


} 

ENV:Visual Studio的2015年(最新ASP.net應用補丁)。 項目模板:Web應用程序

回答

0

這取決於您使用的是何種EF方法。你確定他們在班上有關係嗎?如果您先使用代碼,則必須使用流暢的API手動映射它。在DbContext類的OnModelCreating方法上,使用類似這樣的東西

modelBuilder.Entity()。HasMany(v => v.Shop).WithOptional(s => s.Vendor)。

如果您使用Database First,只需在表格圖表(或腳本)上創建關係並更新您項目的模型,EF將爲您創建該模型。

+0

是否需要進入Fluent API? –

+0

如果您使用標準命名約定(Id或[Classname] Id),EF會自動關聯您的類,因此流暢的api不是強制性的。還有一件事是,將** virtual **關鍵字添加到與其他類的關係中,以便EF知道它們將成爲關係的一部分。 public ** virtual ** Vendors Vendor {get;組; } public ** virtual ** ICollection Shops {get;組; } – subseven

+0

非常感謝。會嘗試相同的。 –