0

내 모델의 클래스 다음 한 Linq에를 사용하는 모든 파생 된 엔티티의 데이터를 검색 : 사용, 나는 Parties을 통해 조회하고 PartyViewModel을 다음과 같은 결과를 반환 할 수있는 방법쿼리 기반 엔티티는 엔티티

public class Party 
{ 
    public int Id {get; set;} 
} 

[Table("Person")] 
public class Person:Party 
{ 
    public string FirstName {get; set;} 
    public string LastName {get; set;} 
} 

[Table("Organization")] 
public class Organization:Party 
{ 
    public string Name {get; set;} 
} 

을 LINQ - 투 - 엔티티 Fluent API?

public PartyViewModel 
{ 
    public int Id {get;set;} 
    public string FirstName {get;set;} 
    public string LastName {get;set;} 
    public string Name {get;set;} 
} 

예 : 나는 다음과 같은 경우 기록은 : 당신이 필요로하는 무엇을 얻어야한다 SQL UNION를 사용

  PartyViewModel 
--------------------------------- 
Id FirstName LastName Name 
0  John  Smith  null 
1  null  null  Microsoft 

답변

1

:

 Person Table 
------------------------ 
Id FirstName LastName 
0  John  Smith 


    Organization Table 
------------------------ 
Id   Name 
1  Microsoft 

나는,에 쿼리 반환합니다.

var q1 = from p in db.Persons 
     select new PartyViewModel { 
      Id = p.Id, 
      FirstName = p.FirstName, 
      LastName = p.LastName, 
      Name = null 
     }; 
var q2 = from o in db.Organizations 
     select new PartyViewModel { 
      Id = o.Id, 
      FirstName = null, 
      LastName = null, 
      Name = o.Name 
     }; 

var vm = q1.Union(q2).ToList();