使用Select(如果你想項目y以新型X)或Cast(如果Y是從X繼承)的IEnumerable<T>
擴展:
IEnumerable<ContactPersonViewModel> contactPersons =
results.Select(p => CreateContactPersonViewModelFrom(p));
如果ContactPersonViewModel是聯繫人:聯繫
IEnumerable<ContactPersonViewModel> contactPersons =
results.Cast<ContactPersonViewModel>();
通常創建視圖模型涉及從實體到視圖模型的手動屬性映射。像這樣:
IEnumerable<ContactPersonViewModel> contactPersons =
results.Select(p => new ContactPersonViewModel {
Name = p.Name,
Phone = p.Phone
});
所以我也建議你看看Automapper這樣的映射框架。它爲你做了很多映射。而這種代碼如下:
IEnumerable<ContactPersonViewModel> contactPersons =
Mapper.Map<IEnumerable<ContactPersonViewModel>>(results);
非常感謝'Automapper'!問候 :) – whoah