0

저는 엔터티에서 특정 열을 검색해야하는 Entity Framework에서 데이터베이스 우선 접근 방식을 연구하고 있습니다. 그것은 Employees (개체) 열이 일치하지 않는 것 같습니다 경우 다음 IQueryable DB에서 사용자 지정 열 가져 오기 첫 번째 방법 EF

Public IQueryable<Entity.Employees> GetEmployeeName(String FName,String LName) 
{ 
    var query = (from s in Employees 
        where s.firstName = FName && s.lastName = LName 
        select new {s.firstName, s.middleName}); 
    return query; 
} 

문은 오류를 던지고 돌아갑니다. 이 문제를 해결하는 데 저를 도울 수 있습니까? 미리 감사드립니다.

답변

0

비교를 위해 ==를 사용해야하며, 사용자 정의 익명 유형을 반환하기 때문에 반환 유형으로 동적 유형을 사용해야합니다. 시도해보십시오

Public IQueryable<dynamic> GetEmployeeName(String FName,String LName) 
{ 
var query=(from s in Employees 
where s.firstName==FName && s.lastName==LName 
select new {s.firstName,s.middleName}); 
return query.AsQueryable(); 
} 

마지막으로 다음과 같이 사용합니다. intelisense는 동적 객체에서 작동하지 않습니다.

var query = GetEmployeeName("Jake", "Smith"); 
      List<dynamic> results = query.ToList(); 
      foreach (dynamic result in results) 
      { 
       string fristName = result.FirstName; 
       string lastName = result.MiddleName; 
      } 
+0

내가 수정 한 문제는 내가 직면 한 것은 Entity.Employees입니다. 우리는 4 개의 열을 가지고 있지만 var 쿼리는 select 문에서 2 개의 열만 있으면됩니다. 그래서 다음과 같은 오류가 나타납니다. '익명 형식 : a new {} 'System.Linq.IQueryable '형식을 암시 적으로 변환 할 수 없습니다. << 익명 형식 : 문자열 firstName, 문자열 중간 이름 >>'to'System.Linq .IQueryable '명시 적 변환이 존재합니다. 캐스트가 누락 되었습니까?' – user3129206

+0

방금 ​​내 게시물을 업데이트했습니다. 익명 형식을 반환하기 때문에 반환 형식으로 동적 형식을 사용해야합니다. 또는 FirstName과 MiddleName 두 개의 필드가있는 사용자 정의 래퍼 유형을 작성하여 대신 리턴 할 수 있습니다. 이렇게하면 결과에서 데이터를 얻을 때 인텔리 센스 작업을 할 수 있습니다. – Leadfoot

+0

이 메소드 메소드 [http : // localhost : 1985/Employee.svc/GetEmployeeName? FName = 'Jake'& LName = 'Smith']에 액세스하려고하는데 오류가 발생했습니다. 엔티티 전체 항목 대신 특정 항목을 가져오고 싶습니다. 샘플 코드를 제공하거나 제안하는 방법을 제공해 주시겠습니까? 사전에 감사드립니다. – user3129206