Сокращение для выбора из объекта базы данных в модель представления с одинаковыми именами свойств - PullRequest
0 голосов
/ 29 мая 2020

В моем проекте 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, который не требует, чтобы я каждый раз выписывал каждое свойство?

...