Невозможно привести анонимный тип возврата из запроса к типу объекта - PullRequest
1 голос
/ 19 июля 2010

Я борюсь с проблемой (обычно простой для решения).

У меня есть база данных, содержащая таблицу "измерений".Каждое измерение имеет метку времени (datetime), значение (десятичное), тип измерения (внешний ключ таблицы поиска) и относится к «элементу емкости» (основной таблице).

Я импортировал SQLбазы данных в Entity Framework и создал модель из него.Теперь я хочу запросить базовую строку .Базовая строка является текущим состоянием элемента емкости и представлена ​​последними измерениями для каждого типа этого конкретного элемента емкости.

Итак, что запрос должен вернуть: для определенного CapacityItem, дайте мнепоследнее измерение каждого типа измерения.В запросе SQL я бы сделал «сгруппировать» по типу измерения и сделал бы MAX () на отметке времени.Но в Linq-2-Entities мне кажется, что я в грязи.Мне нужна функция, которая возвращает IQueryable<Measurement>, содержащая все базовые измерения, но все мои запросы возвращают какой-то анонимный тип, который невозможно типизировать.

Надеюсь, я ясно дал понять.Когда я перечитываю это, я могу представить, что в этом нет особого смысла.Но я слишком долго смотрю на это, и мой разум начинает делать забавные вещи: -)

Кто-нибудь здесь, кто может привести меня в правильном направлении?Пожалуйста, попросите разъяснений, если это необходимо.

Заранее спасибо за миллион.

~ Роб

1 Ответ

2 голосов
/ 19 июля 2010

Что-то вроде:

var q = from m in Context.Measurements
        group m by m.MeasurementType.Id into group
        from bl in group
        where bl.TimeStamp == group.Max(g => g.TimeStamp)
        select bl;

Это не в моей голове, и я думаю о вашей БД. Возможно, вам придется настроить его.

...