我正在使用實體框架與數據庫優先的方法。我已經在我的應用程序中定義了模型。現在我正在使用控制器和視圖。我使用腳手架來創建控制器。現在我想創建行。ASP.NET MVC實體框架:數據註解
比方說,我要創造員工,讓我們假設DBA和EF使之成爲可能:
public partial class TBL_EMPLOYEE
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public TBL_EMPLOYEE()
{
this.TBL_EMPLOYEE = new HashSet<TBL_EMPLOYEE>();
}
public int EMPLOYEE_ID { get; set; }
public String CO_WORKER_NUMBER { get; set; }
public string NAME { get; set; }
public string LAST_NAME { get; set; }
public string SALARY { get; set; }
public string PHONE_NUMBER { get; set; }
public string EMAIL { get; set; }
public string { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
}
現在,我需要一個視圖中創建一個員工,讓我們把這個觀點VIEW 1 在這個視圖中,用戶只需要指定姓名和姓氏值。兩者都是必需的。
現在,在這個VIEW 1情況下,我可以使用下面的數據說明在同一類屬性,這會是:
[Required]
public string NAME { get; set; }
[Required]
public string LAST_NAME { get; set; }
現在,讓我們進入下一個情況。我需要另一個視圖,我們稱之爲VIEW 2 在這一個中,用戶需要指定所有屬性的所有值。除名稱和姓氏之外,所有這些都是必需的。
真正的問題
如何使用相同的模型類這兩種觀點?上面的例子可能看起來有點愚蠢和微不足道的驗證,但我一直在更大的項目中,實體更大,擁有不同的ViewModel類的想法只是很多工作。
我已經在我的.NET開發在這個迷迷糊糊的,到我不得不以創建每次觀看ViewModel類是具體與哪些用戶需要輸入他們的驗證點。這是唯一的方法嗎?這些實體
您可以爲每個視圖創建不同的視圖模型。 – Shyju
使用單獨[視圖模型(http://stackoverflow.com/questions/11064316/what-is-viewmodel-in-mvc),而不是局部類 –
@StephenMuecke是的,我認爲這是唯一的辦法。我只是在想,可能還有另一種方式。但是這需要很多時間。與PHP Laravel不同的是,當您根據Request對象驗證所有內容時,無論Employee模型是什麼樣子 – ggderas