0

所以當在mvc中首先實現實體框架代碼時,我們是否將視圖限制從視圖模型中分離出來?這是因爲對於數據庫第一模型生成(所以我看到的原因分開它查看模型,但如何處理代碼第一?)首先在mvc中使用實體框架代碼與視圖模型?

我會問的下一個問題是可以將視圖模型分開到另一個文件夾?因爲默認asp.net是MVC裏面沒有視圖模型

模型 < ---這是什麼模型調用?數據模型?領域模型?商業模式?

public class Student 
    { 
     public int ID { get; set; } 
     [StringLength(250)] 
     public string LastName { get; set; } 
     public string FirstMidName { get; set; } 
     public DateTime EnrollmentDate { get; set; } 
    } 

視圖模型

public class Student 
    { 
     public int ID { get; set; } 
     [MaxLength(250)] 
     [Required] 
     public string LastName { get; set; } 
     [Required] 
     public string FirstMidName { get; set; } 
     [Required] 
     public DateTime EnrollmentDate { get; set; } 
    } 

回答

0

第一個問題:

您應該使用部分類和元數據到單獨的,就像下面:

[MetadataType(typeof(StudentMD))] 
public partial class Student 
{ 
    public class StudentMD 
    { 
    public int ID { get; set; } 
    [MaxLength(250)] 
    [Required] 
    public string LastName { get; set; } 
    [Required] 
    public string FirstMidName { get; set; } 
    [Required] 
    public DateTime EnrollmentDate { get; set; } 
    } 
} 

第二個問題:

這是確定添加一個文件夾名「視圖模型」

我做到了,在我的項目呢!

+0

我可以知道元數據註釋的用法是什麼?另外,如果以這種方式進行代碼優先(視圖模型中的單獨模型),它不會重複。因爲在數據庫中首先會在數據庫發生變化時生成類,但是在代碼中,我們首先直接修改代碼 – myfinite 2014-10-05 03:58:54

+0

第一個問題:因爲當您修改數據庫時,並且首先使用DB中的代碼修改更改。你會缺少像[DisplayName(「fullname」)]的一些Datannotations。 第二:如果您使用元數據註釋,它將不會重複。 – 2014-10-05 04:10:36

1

您在mvc視圖中使用的模型是viewmodel
您的模型堅持在數據庫中是域模型

您的域模型可能有一些屬性,您不需要在您的客戶端中使用它。
你的服務層必須返回DTO(數據傳輸對象)到客戶端,你可以映射DTO視圖模型

相關問題