У меня есть база данных с этими двумя таблицами: Customer
и CustomerStatus
.CustomerStatus
- это так называемая таблица только для чтения.Все изменения статуса клиента приводят к ВСТАВКЕ в эту таблицу.Текущий статус клиента можно найти с помощью CustomerStatus.StatusTimestamp
.
. Сейчас я ищу запрос LINQ to entity, который загружает всех клиентов вместе с их текущим статусом.Что-то вроде
.Include("CustomerStatus.OrderByDescending(StatusTimestamp).FirstOrDefault()")
.
Я не нашел подходящего пути с EF 4.0.
Мой текущий обходной путь очень уродлив и использует 2 этапа:
шаг 1: запрос LINQ, который загружает все статусы (на уровне бизнеса / данных):
var r = from c in db.Customers.Include("CustomerStatus")
select c;
шаг 2: получение подходящего статуса от каждого клиента в графическом интерфейсе(в цикле в представлении MVC3):
c.CustomerStatus.OrderByDescending(i => i.StatusTimestamp).FirstOrDefault()
Есть идеи, как это можно сделать непосредственно за один шаг?