1

У меня есть два сущности POCO сущностей со многими или многими отношениями, например.EF 6 для многих извлечения данных с использованием LINQ

public class Employee 
{ 
    public int Id; 
    public string Name; 
    public virtual ICollection<Organization> Organizations {get;set;} 
} 

public class Organization 
{ 
    public int Id; 
    public string Name; 
    public virtual ICollection<Employee> Employees {get;set;} 
} 

Я хочу получить Employee.Name, Employee.Id, OrganizationID, используя LINQ. Он будет повторять данные для Employee, но я в порядке с ним. Как мне написать LINQ для EF для этого.

+0

Есть ли какое-либо отношение между ними? –

ответ

1
var query = from e in context.Employee 
      from o in e.Organizations 
      select new 
      { 
       EmployeeName = e.Name, 
       EmployeeId = e.Id, 
       OrganizationId = o.Id 
      } 
0

Как указано выше, у вас должен быть внешний ключ в одной из таблиц. Поэтому нет необходимости брать оба объекта сущности, просто возьмите тот, в котором доступен внешний ключ другого, и вы получите объект Icollection другого объекта.

, если Работник, имеющий внешний ключ для организации, то вы можете сделать что-то вроде:

var objEmp = context.Employee; 

так вы получите весь объект Employee в objEmp и где вы хотите использовать Organization объект, вы получите ICollection организации как вы имеете многие ко многим в следующим образом:

var objOrg = objEmp.Organisations; 

вы можете использовать метод FirstOrDefault() или SingleOrDefault() для получения первого или одну запись в приведенном выше запросе с лямбда-выражения.