dataContext.Geo_Countries.Where (c => c.Name.Contains (searchKey)). ToList();Когда IQueryable возвращает запись, ToList() выдает исключение
Когда IQueryable не возвращает записи, я получаю исключение значения null.
Какое решение?
dataContext.Geo_Countries.Where (c => c.Name.Contains (searchKey)). ToList();Когда IQueryable возвращает запись, ToList() выдает исключение
Когда IQueryable не возвращает записи, я получаю исключение значения null.
Какое решение?
Я подозреваю, что у вас нет проблем, когда нет совпадений. Я подозреваю, что вы получили его, когда в вашей базе данных есть строка без значения Name
. Либо это, либо вы делаете что-то еще, что вы нам не показали. Как выглядит трассировка стека?
пытаются использовать этот код
dataContext.Geo_Countries.Where(c => c.Name != null && c.Name.Contains(searchKey)).ToList();
Вызов ToList() на IQueryable сгенерирует исключение, если код не правильно выполнить. В следующем примере, ToList() будет сгенерировано исключение, если c.Name равно нулю:
void Main()
{
var countries = new [] { new Country() }.AsQueryable();
countries.Where(c => c.Name.Contains("bubba")).ToList();
}
class Country{
public string Name { get; set; }
}
Существует что-то еще происходит тогда, потому что, как правило, вы не должны получить нулевое исключение из инструкции не опубликован, если DataContext или Geo_Countries имеет значение NULL. Вам может потребоваться опубликовать дополнительную информацию, например, какого провайдера linq вы используете ... – 2010-12-16 20:52:10
Вы не должны получать исключение из этого ... если вы не пытаетесь оценить результаты этого запроса. – Vishal 2010-12-16 20:53:09
Используя базу данных Northwind и LINQPad, я запустил это: `Категории.Where (c => c.CategoryName ==" XXXX "). ToList(). Dump();` и он работал нормально, возвращая пустой список. – 2010-12-16 20:54:21