我想通過使用視圖模型來清理ASP.NET MVC項目中的操作方法。目前,我的視圖模型包含可能與其他實體有關係的實體。例如,ContactViewModel類可能有一個Contact,它可能有一個Address,它們都是獨立的實體。要查詢聯繫人對象的列表,我可能會執行以下操作。ASP。 NET MVC:映射實體以查看模型
IList<Contact> contacts;
using (IContactRepository repository = new ContactRepository())
{
contacts = repository.Fetch().ToList();
}
EditContactViewModel vm = new EditContactViewModel(contacts);
return View(vm);
這種方法帶來一些問題。例如,在使用語句中查詢存儲庫。在視圖呈現時,上下文已超出範圍,使視圖無法查詢與聯繫人關聯的地址。我可以啓用急切的加載,但我寧願不。此外,我不喜歡實體模型已經滲透到我的觀點中(我覺得我的視圖對聯繫人和地址之間的關係有所瞭解,但隨時可以不同意我的看法是一個壞主意)。
我曾考慮過創建一個包含Contact和Address實體的屬性的肥沃類。然後,我可以將聯繫人和地址實體投影到我的新扁平物體中。我對這種方法的擔心之一是我的操作方法可能會有點忙,我不認爲認爲 AutoMapper能夠將兩個或多個對象映射到單一類型。
什麼技術是/首選克服我的顧慮?
非常酷。我對AutoMapper還是一個新手,所以我甚至不知道它可以像這樣映射。非常感謝你。 – senfo 2010-02-16 03:15:58