我的ASP.NET MVC站點連接到WCF服務以獲取數據。 WCF服務返回這樣的數據合同:ASP.NET MVC視圖模型最佳實踐
[DataContract]
public class Person
{
[DataMember]
public string First { get; set; }
[DataMember]
public string Last { get; set; }
}
在我的MVC項目視圖模型看起來是這樣的:
public class MyViewModel
{
public string SomeExtraField1 { get; set; }
public string SomeExtraField2 { get; set; }
public string SomeExtraField3 { get; set; }
public Person Person { set; set; }
}
使我的視圖模型被引用返回的「人」的數據合同從數據服務?還是應該在我的MVC項目中創建一個新的「Person」類,以反映「Person」數據合同中的屬性?
WCF服務調用隱藏在接口後面。它似乎是有數據合同的接口引用使得我的接口是一個漏洞抽象。然而,我有一些人相信在我的MVC項目中創建一個額外的「Person」類,以反映數據合同是代碼膨脹。
圍繞這種分層/解耦的最佳實踐是什麼?
可以通過構造函數將域對象傳遞給視圖模型並私自使用他的域對象嗎? – Fixer 2012-02-18 10:18:06
@Fixer,不,默認的模型聯編程序會窒息而死。 – 2012-02-18 10:19:36
@Darin,引入AutoMapper的+1 – CjCoax 2012-02-21 12:41:07