В моем проекте ASP. NET MVC 5 у меня есть модель, созданная Entity Framework для сущности в моей базе данных:
public partial class EmailType
{
public int ID { get; set; }
public string Description { get; set; }
public bool Enabled { get; set; }
public string Subject { get; set; }
public string Body { get; set; }
public System.DateTime LastModified { get; set; }
public string LastModifiedBy { get; set; }
}
Когда я работаю с этой сущностью в представление Я использую модель представления, которая в основном идентична базовому классу сущности, без полей Last Modified, поскольку я считаю, что это лучшая практика.
Я хочу знать, есть ли быстрый способ выбора записи из базы данных в мою модель представления. Если бы я просто использовал базовый класс сущности, это было бы так просто, как:
List<EmailType> emailTypes = db.EmailType.ToList();
Но поскольку я использую модель представления, я должен написать это:
IList<EmailTypeViewModel> emailTypes = db.EmailType
.Select(e => new EmailTypeViewModel
{
ID = e.ID,
Description = e.Description,
Enabled = e.Enabled,
Subject = e.Subject,
Body = e.Body
})
.ToList();
И это всего лишь простой пример. Когда я работаю с моделями представлений, которые связаны с дочерними моделями представлений, это становится очень длинным. Есть ли сокращенный способ выбора из базы данных в модель представления с использованием LINQ, который не требует, чтобы я каждый раз выписывал каждое свойство?