1

У меня есть код для извлечения всех столбцов из класса сущности по критерию поиска. Но я хочу, чтобы значение столбца было задано вместо полных значений столбца.Как получить один столбец с Entity Framework?

Мой код -

Main main; 
main = repo.Find<Main>(m => m.Code == criteria.code); 

где Main является класс сущностей, repo является хранилищем и criteria является класс критерии поиска. Теперь я хочу получить конкретное имя столбца, скажем id. Как я могу это достичь?

ответ

3
var column = 
    from m in repo 
    where m.Code == criteria.code 
    select m.SomeColumn; 
6

Предполагая, что Find возвращается в IQueryable<T>, то вы можете использовать проекцию:

repo.Find<Main>(m => m.Code == criteria.code).Select(m => m.Column); 
+0

Нет, он не возвращает 'IQueryable ', его возвращает 'Single' – Sandy

+0

. Затем вам необходимо изменить репозиторий, иначе проекция не будет выполняться на уровне базы данных, что может быть или не быть проблемой , – devdigital

3

Вы делаете проекцию запроса с помощью метода Select:

repo.Mains.Where(m => m.Code == criteria.code).Select(m => m.Id); 

На соответствующую записку , вы должны прочитать Getting Started with Entity Framework. Это даст вам представление о операторах запросов.

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