2016-08-25 38 views
1

我是新來的MVC,MVC實體類型沒有密鑰定義

我使用Visual Studio 2015年,EF6

我創建新的Web項目,隨後逐步與本教程(努力學習): http://www.asp.net/mvc/overview/older-versions/mvc-music-store/mvc-music-store-part-1

我現在在第8部分中,我創建了ShoppingCartController,ShoppingCartViewModel,ShoppingCartRemoveViewModel。

現在,根據「使用jQuery進行Ajax更新」標題下的說明,我應該創建購物車索引頁,該頁強制類型爲ShoppingCartViewModel並使用列表視圖模板。

但是,當我試圖做到這一點,我得到一個錯誤 enter image description here

我怎樣才能解決這個問題?

編輯:

public class ShoppingCartViewModel 
    { 
     public List<Cart> CartItems { get; set; } 
     public decimal CartTotal { get; set; } 
    } 
完全按照本教學中

...

感謝

+0

你能告訴你的ShoppingCartViewModel類的內容? –

+1

要更新,請將[Key]屬性添加到模型的ShoppingCart類的主鍵。 –

+0

David - 我只是用你問的代碼編輯我的文章。 – nirh1989

回答

0

是,根據上述,我想建議遵循以下提到的教程您的評論。這與你當前的路徑很好地匹配。那就是MVC 5。請看看。祝你好運!

Getting Started with ASP.NET MVC 5

您的問題上面,你可以下載上面的教程的源代碼,然後你可以找到你自己的問題。

這裏是鏈接爲:Source code

0

每個實體需要一個主鍵,有幾種方法來設置一個。如果在類的屬性被命名爲ID

EF會自動推斷的關鍵,像這樣:

public int ID {get;set;} 

或者你可以使用屬性來指定一個特定的屬性作爲鍵:

[Key] 
public int SomeKey {get;set;} 

命名類XXViewModel意味着它不是一個持久化類(未保存在數據庫中)。所以一個模型是你在數據庫中保存的一個類,而一個ViewModel是你用來傳遞數據到你的視圖的類。

所以,你的模型應該是這樣的:

public class ShoppingCartModel 
{ 
    [Key] 
    public int ID {get;set;} 

    public List<Cart> CartItems { get; set; } 
    public decimal CartTotal { get; set; } 
} 
+0

謝謝Wurd,但根據你的回答,如果我的課是XXViewModel(它是),而不是需要對於密鑰,因爲它不在數據庫中......所以我不確定你的答案如何幫助我,也許我沒有正確理解你。我的課是一個ViewModel,所以爲什麼我得到一個錯誤,我的課缺少密鑰? – nirh1989

相關問題