Запрос LINQ к сущностям для выбора содержимого из таблицы co и присоединения к этой таблице с помощью cotypes whereco. cotype =’somevalue’ и c.someId — максимальное значение?

#linq-to-entities

#linq-to-entities

Вопрос:

Каким будет запрос LINQ к сущностям для следующего SQL-запроса?

 select Verbiage.verbiage 
from Verbiage
join Verbiage_Types on Verbiage.verbiage_type_id=Verbiage_Types.verbiage_type_id
where Verbiage_Types.verbiage_type='ENROLLMENT'
group by Verbiage.verbiage,Verbiage.sequence
having Verbiage.sequence=(
     select MAX(Verbiage.sequence) 
     from Verbiage 
     join Verbiage_Types on Verbiage.verbiage_type_id=Verbiage_Types.verbiage_type_id 
     where Verbiage_Types.verbiage_type='ENROLLMENT')
  

Ответ №1:

Я не уверен, но если это не сработает, это довольно близко?

     Using db As TestContext = New TestContext("connectionString")
        Dim result = (From v In db.Verbiages Join vt In db.Verbiage_Types
                      On v.Verbiage_Type_Id Equals vt.Verbiage_Type_Id
                      Where vt.Verbiage_Type = "ENROLLMENT"
                      Group v.Verbiage, v.Sequence By v.Verbiage, v.Sequence Into Group
                      Where Sequence = Group.Max(Function(n) n.Sequence)
                      Select Verbiage)
    End Using
  

Ответ №2:

на самом деле ответ таков

 from verbiage in db.Verbiage
join verbiage_types in db.Verbiage_Types on verbiage.verbiage_type_id equals verbiage_types.verbiage_type_id where verbiage_types.verbiage_type == "ENROLLMENT" group verbiage by new { verbiage.verbiage1, verbiage.sequence } into g where   g.Key.sequence == 
(from verbiage0 in db.Verbiage
join verbiage_types1 in db.Verbiage_Types on verbiage0.verbiage_type_id equals verbiage_types1.verbiage_type_id
where
  verbiage_types1.verbiage_type == "ENROLLMENT" select new {
  verbiage0.sequence
}).Max(p => p.sequence) select new { g.Key.verbiage1}