0

Я работаю над первым подходом базы данных в Entity Framework, где мне нужно получить определенные столбцы из Entity.Получение пользовательской колонки из 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; 
} 

Здесь возвращают оператор бросает ошибку, когда, кажется, что его не соответствие с Employees (сущностей) столбцов. Не могли бы вы помочь мне в решении этой проблемы? Заранее спасибо.

ответ

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 не будет работать на динамическом объекте.

+0

Я изменил на ==, но проблема, с которой я столкнулся, - это Entity.Employees у нас есть 4 столбца, но запрос var я хочу только 2 столбца в инструкции select. Поэтому я получаю ошибку, как показано ниже: «Анонимные типы: a is new {} Невозможно неявно преобразовать тип 'System.Linq.IQueryable' << анонимный тип: string firstName, строка middleName >> 'to'System.Linq .IQueryable . Явное преобразование существует (вам не хватает роли?) ' – user3129206

+0

Я только что обновил свой пост. Поскольку вы возвращаете анонимный тип, вам нужно использовать динамический тип в качестве типа возврата. В качестве альтернативы вы можете создать собственный тип оболочки с двумя полями FirstName и MiddleName и вместо этого вернуть их. Это позволит вам работать с intelisense, когда данные возвращаются из результата. – Leadfoot

+0

Я пытаюсь получить доступ к этому методу метода [link] (http: // localhost: 1985/Employee.svc/GetEmployeeName? FName = 'Jake' & LName = 'Smith'), но получить ошибку. Я хочу получить конкретные столбцы вместо целых столбцов сущности. Не могли бы вы предложить или предоставить образец фрагмента, как это сделать. Спасибо в Advance. – user3129206

Смежные вопросы