2012-04-26 4 views
0

SQL에서 매우 쉽게 수행 할 수있는 엔티티 프레임 워크에서 다음 작업을 수행하려고합니다.linq 엔티티 프레임 워크의 조합

select 0 as employeeid, 'Select' as employeeName 
union 

Select employeeid, employeeName from tblemployee where IsActive=true 

도와주세요.

답변

2

아마 이런 식으로 뭔가 :

UNION

var t= Enumerable 
     .Range(0,1) 
     .Select (e => 
        new{employeeid=0,employeeName="Select"}) 
     .Union(
      db.tblemployee 
      .Select (u => 
        new {employeeid=u.employeeid,employeeName=u.employeeName})); 

UNION ALL

var t= Enumerable 
     .Range(0,1) 
     .Select (e => 
        new{employeeid=0,employeeName="Select"}) 
     .Concat(
      db.tblemployee 
      .Select (u => 
        new {employeeid=u.employeeid,employeeName=u.employeeName})); 

와 DB가

+0

대단히 감사합니다. 귀하의 코드가 잘 작동합니다. – aziz

+0

도와 드리겠습니다. 당신이 답을 잘한다면. 그렇다면 그것을 받아들이는 것이 좋습니다. – Arion

+0

"Enumerable.Range (0,1)"로 시작하는 이유를 설명해 주시겠습니까? – Den

0

tblemployee 엔티티에 매핑되고 있음을 가정하면 데이터 컨텍스트를하다 Employee하고 DbContext는 다음을 수행 할 수 Employees 이름 Employee s의 컬렉션이 있습니다 : @Arion 언급대로 엔티티 프레임 워크가 중복 된 개체를 제거하려면

var allEmployeesPlusAnEmptyOne = 
    new[] { new Employee { EmployeeId = 0, Name = "Select" } } 
    .Concat(dbContext.Employees.Where(e => e.IsActive)); 

..., 당신은 Union()을 사용할 수 있습니다, 나는 아무 것도 없을 것이라고 생각하지만.

+0

도움을 주셔서 대단히 감사드립니다. 코드가 잘 작동하고 있습니다. – aziz

+0

도와 주셔서 감사합니다. :) –

관련 문제