如果編碼有一個簡單的按鈕,那就好了,但它就是這樣。您可以一次編寫代碼並在需要時重複使用它。你可以使用AutoMapper並處理一些隨之而來的麻煩。你最好的選擇就是自己寫,也許捕捉一些錯誤,如果你的上下文變化..
沒有一個映射器,你可以添加一個靜態func到你的viewmodel將採取一個Employee對象,並創建一個EmployeeVM和使用這在你的上下文查詢中。
public class EmployeeVM
{
public EmployeeVM()
{
Departments = new List<DepartmentSelect>();
}
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public DateTime? Dob { get; set; }
public List<DepartmentSelect> Departments { get; set; }
public static Func<Employee, EmployeeVM> FromEntity = item => new EmployeeVM() {
Id = item.Id,
FirstName = item.FirstName,
LastName = item.LastName,
Dob = item.Dob
};
}
// get single EmployeeVM
var eVm = EmployeeVM.FromEntity(context.Employees.Find(id));
// get List<EmployeeVM
var eVmList = context.Employees.Select(EmployeeVM.FromEntity).ToList();
這個心不是推薦,但如果員工是一個局部類,你總是可以只通過在同一個命名空間增加另一部分類擴展它。
public partial class Employee
{
//Add Extra Properties
public List<DepartmentSelect> Departments { get; set; }
}
Befor做任何事閱讀本頁https://msdn.microsoft.com/en-us/library/ee207183.aspx。最好將所有的屬性複製到你的viewModel類,因爲你對它們有更多的控制,例如你可以使用數據加註 – Arash