2011-08-23 64 views
1

我正在使用EF CodeFirst處理ASP.NET MVC 3項目。我有一個簡單的類與鍵柱設置幾個屬性:儘管使用ScaffoldColumn,仍未顯示鍵列(true)

public class Tag 
{ 
    [Key] 
    [DatabaseGenerated(DatabaseGeneratedOption.None)] 
    [ScaffoldColumn(true)] 
    public short TagID { get; set; } 

    [Required] 
    [MaxLength(50)] 
    public string Name { get; set; } 
} 

正如你可以看到有DatabaseGenerated(DatabaseGeneratedOption.None)和ScaffoldColumn(真)的屬性。這是因爲我想要手動輸入TagID。現在,當將TagControler添加到項目中時,我沒有在5個生成的視圖中均未顯示TagID列。

我知道我可以手動添加它,但我不知道這種行爲是設計還是我做錯了什麼?

回答

2

默認情況下,主鍵不作爲可編輯字段搭建。相反,密鑰有一個隱藏字段。如果你想改變這種行爲,你可以修改這些模板,但它是通過設計的,因爲通常編輯實體的主鍵是沒有意義的。

這裏是如何做到這一點,如果你想使這個改變你添加一個視圖中的任何時間或想做出一些其他自定義改變腳手架的一些信息:

http://blogs.msdn.com/b/joecar/archive/2011/01/06/add-the-asp-net-mvc-3-code-templates-to-your-application-with-nuget.aspx

+0

我同意這編輯實體的主鍵沒有任何意義,但在創建時手動輸入它肯定是有意義的。恕我直言,只有在數據庫不能自動生成的主鍵字段與任何其他可編輯字段之間的區別應該只在編輯視圖中,其中主鍵字段應該顯示爲只讀。 – Anil

相關問題