Как узнать, вернул ли linq объект? - PullRequest
0 голосов
/ 29 декабря 2010

например.

У меня есть запрос linq для поиска клиента

var customer = from c in _repo
               where c.username == username
               select c;

Как узнать, найден ли клиент?

Я пытался

if(customer)

Но VS говорит, что не может неявно преобразовать тип Models.Customer в bool

Модель генерируется EF4.

Поскольку используется шаблон хранилища.

Метод single возвращает общедоступный TEntity Single (выражение> предикат)

Ответы [ 2 ]

2 голосов
/ 29 декабря 2010

Похоже, что вы действительно пытаетесь найти одного клиента, поэтому используйте:

var customer = _repo.SingleOrDefault(c => c.username == username);
if (customer != null)
{
    ...
}

Если может быть несколько клиентов с одинаковым именем, вы должны подумать,Вы хотите найти все из них, или вы можете просто использовать первый.Если вы можете дать более подробную информацию о том, что вы пытаетесь сделать, мы можем помочь больше.

0 голосов
/ 29 декабря 2010

Вы можете использовать Enumerable.Any:

if (customer.Any())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...