Как выполнить несколько объединений в EF и загрузить datagrid, используя VB

#entity-framework

#entity-framework

Вопрос:

Я пытаюсь загрузить сетку, используя объекты EF.

 select * from 
[session] inner join [sessionrep] on [session].ID = [sessionrep].repid
inner join [group] on [group].id = [session].groupid
where [sessionrep].repid = x
  

Я создал частичный класс и добавил в него свойства, которые хотел отобразить в сетке:

 Partial Public Class SessionRep 
Public ReadOnly Property Name() As String 
Get Return Session.Name 
End Get 
End Property 
.... 
End Class
  

Я пытался это сделать, но это загружает только активное поле таблицы, остальные поля пусты, хотя количество строк указано правильно.

 grdSessions.DataSource = db.SessionReps.Include("Session").Include("Session.Group").Include("Session.Group.Program").Where(Function(r) r.RepID = repID).ToList()
  

Что я делаю не так? Спасибо.

Комментарии:

1. Вы спрашиваете, как воспроизвести SQL-запрос с помощью LINQ to Entities? Было бы проще ответить, если бы вы могли показать свои классы Session и SessionRep и как они связаны. И что такое «активное поле»?

2. Да, я только изучаю синтаксис LINQ. Возникли проблемы при написании этого запроса с использованием Linq. Я не хочу использовать частичный класс, и я думаю, что Linq to Entities — это правильный путь.

Ответ №1:

Нет необходимости в частичных классах.

 Dim query = 
From s In db.Sessions 
From d In db.SessionReps 
Where s.ID = d.RepID And d.RepID = repID 
Select s 

grdSessions.DataSource = query.ToList() 
grdSessions.DataBind()