Как заполнить свойство, которое непосредственно не хранится в базе данных, с помощью CodeFirst - PullRequest
0 голосов
/ 26 сентября 2011

У меня есть 2 сущности, каждая из которых управляется EF Code First, и каждая счастливо сидит за своим столом. Entity_A имеет свойство, называемое SumTotal, которое должно быть суммой определенного столбца в Entity_B, который соответствует определенным критериям.

SumTotal не должен сохраняться в БД, а должен вычисляться каждый раз при получении экземпляра Entity_A.

Я посмотрел на ComputedColumns, но похоже, что вычисляемый столбец может быть определен только относительно столбцов в той же таблице.

У меня также есть ощущение, что мне нужно установить SumTotal в NotMapped (или что-то похожее с AutoGenerated), но я не знаю, как получить фактическое значение в SumTotal.

Надеюсь, что этот вопрос имеет смысл, заранее спасибо

1 Ответ

0 голосов
/ 26 сентября 2011

Вы можете проецировать результаты на анонимный объект и преобразовать его в свою сущность

var projection = db.EntityAs.Where(/* */)
        .Select(a => new {A = a, Sum = a.Bs.Sum(b => b.Total)})

foreach(p in projection)
{
  p.A.SumTotal = p.Sum;
}

var As = projection.Select(p => p.A);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...