Как сделать следующее в Entity Framework 4.1 с использованием Linq - PullRequest
0 голосов
/ 10 сентября 2011

Following is the data model

Предположим, что приведенная выше модель данных, как выполнить следующий запрос в EF 4.1

Select 
   students.firstname
   ,students.lastname
   ,classes.classname
   ,IsNull(studentsclasses.id,0) Attending 
from students
cross join classes 
left outer join studentsclasses on studentsclasses.classid = classes.classid 
            and studentsclasses.studentid = students.studentid
where students.studentid = 5

следующая моя попытка

from s in Students
from c in Classes
select new {
              StudentFirstName = s.Firstname,
              StudentLastName = s.Lastname,
              ClassName = c.Classname
           }

1 Ответ

3 голосов
/ 10 сентября 2011

В Entity Framework отношения между students и classes должны быть представлены свойством навигации classes в каждом student Объекте, который содержит все классы, с которыми связан учащийся. С помощью этого вы можете сделать:

var student = Students.FirstOrDefault( s = > s.studentid == 5);
if(student!=null)
{
  var studentClasses = student.classes.Select( c => new
  {
     StudentFirstName = student.Firstname,
     StudentLastName = student.Lastname,
     ClassName= c.Classname     
  });
  //..
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...