2010-09-07 2 views
-1

Как я могу реализовать следующий запрос SQL как запрос linq к объектам?Как я могу реализовать следующий запрос SQL как запрос linq к объектам?

select *, MIN(QueuedDate) 
from pcm_transactions 
where QueuedDate IS NOT NULL And ExecutionDate IS NULL 
group by SimId 

Я часами размышлял и пытался использовать методы varius - надеюсь найти правильный ответ здесь.

EDIT:

Вот один из моих первых попыток:

// Get the oldest queued action 
var queuedTransactions = 
    (from t in db.TransactionSet 
     where t.QueuedDate.HasValue && !t.ExecutionDate.HasValue 
     group t by new { t.TransactionId, t.QueuedDate } into tr 
     select new 
     { 
      Transaction = db.TransactionSet.First(q => q.TransactionId == tr.Key.TransactionId), 
      QueuedDate = tr.Min(m => m.QueuedDate) 
     }).ToList(); 
+4

Одна проблема заключается в том, что SQL не является допустимым, чтобы начать с; Вам нужно группировать по каждому столбцу, который не является суммарным выражением (например, min/max и т. Д.), Поэтому «select *» просто не имеет смысла. У вас есть образцы данных и требуемые результаты, чтобы помочь нам переписать это в Linq? – Will

+0

ОК, но мне нужна вся строка - не только минимальная QueuedDate - как я могу это достичь? –

ответ

0

Одна проблема заключается в том, что SQL не является допустимым, чтобы начать с; У вас есть группы по каждому столбцу, который не является агрегированным выражением (например, min/max и т. Д.), Поэтому «select *» просто не имеет смысла. У вас есть образцы данных и требуемые результаты, чтобы помочь нам переписать это в Linq?

- Цитируется комментарий Уилла

Смежные вопросы