讓我們成像,我們有模型:比較兩個模型在.NET
public class InheritModel
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public string OtherData { get; set; }
}
我們與查看控制器,表示此型號:
private InheritModel GetAll()
{
return new InheritModel
{
Name = "name1",
Description = "decs 1",
OtherData = "other"
};
}
public ActionResult Index()
{
return View(GetAll());
}
現在,我們可以查看編輯這個,更改一些數據並返回後在服務器:
[HttpPost]
public ActionResult Index(InheritModel model)
{
var merged = new MergeModel();
return View(merged.Merge(model, GetAll()));
}
我需要做什麼:
- 鑑於我們模型的再現
- 用戶變化的東西,並張貼
- 合併方法需要比較場逐場發佈模型和以前的型號
- 合併方法創建數據的新InheritModel這是改變張貼模型,所有其他數據應該爲空
有人可以幫我做出這種合併方法嗎?
UPDATE(!)
這不是一個簡單的任務。接近像:
public InheritModel Merge(InheritModel current, InheritModel orig)
{
var result = new InheritModel();
if (current.Id != orig.Id)
{
result.Id = current.Id;
}
}
不適用。這應該是通用解決方案。我們在該模型中有超過200個屬性。第一個模型是從DB的重要表格中構建的。
難道你不能只使用[AutoMapper](http://automapper.codeplex.com/)? – Amy 2011-12-28 10:06:27