Entity Framework - дополнительные динамически вычисляемые свойства для бизнес-объектов / моделей (ASP.NET MVC) - PullRequest
3 голосов
/ 10 марта 2010

Допустим, у меня есть модель Customer со следующими полями: Id, FirstName, LastName. Я хочу представить список клиентов в виде списка. Для этого я использую свой сервисный метод, который возвращает List для повторения в представлении.

Но теперь я хочу также показать некоторую дополнительную информацию для каждого клиента, например, кредит. Эта информация не хранится в определенном поле в базе данных, но должна рассчитываться на основе данных в Трансацитонах. Где мне сделать этот расчет?

У меня может быть дополнительное поле под названием Модель кредита для клиента, и я делаю это в геттере, но я не уверен, что это лучший способ, особенно в модели o У меня нет доступа к контексту EF.

1 Ответ

5 голосов
/ 10 марта 2010

Предполагая, что ваш вопрос сформулирован правильно, и это действительно только для отображения, а не для бизнес-процессов (что было бы совершенно другим вопросом) ...

Сделай это в своей модели презентации. Добавьте необходимые вам данные, спроецируйте на них и рассчитайте результат. Вот очень тривиальный пример. Реальный мир сложнее.

class Person // entity
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

class PersonPresentation
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string DisplayName 
    {  
        get 
        { 
            return string.Format("{0} {1}", this.FirstName, this.LastName);
        }
    }
}

public ActionResult DisplayPeople()
{
    var model = from p in Repository.AllPeople()
                select new PersonPresentation
                {
                    FirstName = p.FirstName,
                    LastName = p.LastName
                };
    return View(model);
}
...