Какой самый короткий способ вернуть объект Entity Framework из одной таблицы на основе его атрибута name? - PullRequest
0 голосов
/ 30 мая 2010

Какой самый короткий способ вернуть объект Entity Framework из одной таблицы на основе его атрибута name?

Так, скажем, у человека был табличный человек с именем столбца, какой самый быстрый способ вернуть объект человека с именем name = "Tim"?

например. context.People.Select(m => m.Name == "Tim") не похоже на работу?

Ответы [ 3 ]

3 голосов
/ 30 мая 2010
context.People.First(m => m.Name == "Tim")
1 голос
/ 30 мая 2010

Вы хотите только один объект? Если вы уверены, что в таблице есть только один элемент, который соответствует вашим критериям, вы можете сказать

context.People.Single(m => m.Name == "Tim");

Если их может быть больше одного, и вам нужно только первое, используйте взамен метод расширения .First (). Разница в том, что Single выдаст исключение, если более чем одна запись соответствует вашим критериям. Первый простой делает то, что говорит, он займет первую из любого числа записей.

(Также рассмотрите методы SingleOrDefault и FirstOrDefault, если в таблице не может быть подходящих записей.)

Редактировать : По-видимому .Single не поддерживается в инфраструктуре Linq-To-Entities, но First есть.

0 голосов
/ 03 июня 2010

Это также работает ... (возможно, это не самый короткий путь, но я считаю его более читабельным)

        var person = (from p in context.People
         where p.Name == "Tim"
         select p).FirstOrDefault();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...