Как представить этот SQL-запрос в LINQ для сущностей? - PullRequest
0 голосов
/ 29 октября 2010

Я новичок в LINQ и пытаюсь представить следующий запрос в LINQ to Entities:

Select * from Cotations CT1 
where CT1.CotationID = iCot_ID and 
      Revision = 
          (select max(revision) 
          from Cotations CT2 
          where CT1.CotationID = CT2.Cotation)

, где iCot_ID - внешний параметр, а Cotations - мойнабор сущностей.

Еще лучше, как я могу представить это как ассоциацию между двумя сущностями?

Если у меня есть следующие сущности:

MasterLog:

- cotationID

Cotation:

- Cotationid

- ключ редакции,

и для каждого MasterLog я хочу иметь ассоциациюс Cotation на основе только CotationID, где Revision является максимальным для этого cotation (как в приведенном выше запросе)

Спасибо.

Лукаш

1 Ответ

0 голосов
/ 29 октября 2010

Я думаю, вы слишком усложнили свой запрос.Это должно сделать следующее:

int iCot_ID  = 0;

var query = (
  from c in context.Coalation
   .Where(x=>x.Cotationid == iCot_ID)
   .OrderByDesc(x=>x.Revision)
 )
.FirstOrDefault();

Я не совсем понимаю вторую половину вашего вопроса.Пожалуйста, уделите немного времени и объясните, что вы хотели бы сделать с MasterLog.

Вот предположение:

var cQuery = (
           from c in context.Coalation
                  group c by g.Revision into g
                  orderby g.Revision descending
           select g.First()
);

var mQuery = (
           from m in MasterLog
           join c in cQuery 
               on m.cotationID equals c.Cotationid
           where 
              m.Cotationid==iCot_ID 
           select new {
                MasterLog = m,
                Cotation = c
            }

);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...