Невозможно привести IQueryable <Tobject>к объекту Tobject. - PullRequest
0 голосов
/ 06 июня 2018

У меня есть следующий код

var contact = repository.GetContacts.Where(p => p.ID == id);
repository.DeleteContact(contact);

переменная "contact" имеет тип IQueryable<Contact>, метод DeleteContact() принимает объект Contact.

Как я могу привести /преобразовать контакт из IQueryable<Contact> в Contact?

1 Ответ

0 голосов
/ 06 июня 2018

Это потому, что предложение Where возвращает IQueryable<Contact> (набор контактов), а не один контакт (даже если в коллекции может быть только один элемент).

Два вариантана ум приходят либо все контактов:

foreach (var contact in repository.GetContacts.Where(p => p.ID == id).ToList())
{
    repository.DeleteContact(contact);
}

, либо, если вы ожидаете только одного или ни одного, вы можете использовать SingleOrDefault, чтобы получить один контакт:

var contact = repository.GetContacts.SingleOrDefault(p => p.ID == id);

// If it's not null, delete it
if (contact != null) repository.DeleteContact(contact);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...