Как написать этот оператор SQL с помощью C# и LINQ? Я запрашиваю базу данных Oracle, и таблица имеет несколько ревизий записей. Поэтому я хочу, чтобы текущая ревизия каждой записи содержалась в таблице.LINQ Синтаксис для текущей версии
SQL, выглядит следующим образом:
select TP_ID, TP_TEXT, TP_DEFN_SAKEY
from TP_DEFN tp1
where tp1.TP_ACTIVE_FLAG = 'Y' and
tp1.FAMILY_ID = 1 and
tp1.TP_DEFN_REV_DTS = (select max(TP_DEFN_REV_DTS)
from TP_DEFN tp2
where tp2.family_id = tp1.family_id and tp2.tp_id = tp1.tp_id)
order by TP_ID
TP_DEFN_REV_DTS
это поле даты и времени, который хранит текущую версию.
Я новичок в LINQ и изо всех сил пытаюсь найти работоспособное решение. Каждый раз, когда я пытаюсь группировки в запросе LINQ я получаю сообщение об ошибке
GroupBy не поддерживается
Не мог бы вы добавить образец кода, что вы пробовали раньше? –
Используете ли вы Entity Framework с поставщиком Oracle? – jrummell
Собственно, 'GroupBy' может быть именно таким; не поддерживается вашим провайдером Linq. Я по крайней мере испытал это с поставщиком NHibernate. – lbergnehr