Как лучше всего определить, есть ли в таблице запись с конкретным идентификатором? - PullRequest
1 голос
/ 18 марта 2010

У меня короткий вопрос. Я мой текущий проект, я использую LINQ-to-SQl. Это лучший способ определить, есть ли в таблице запись с определенным идентификатором?

Заранее спасибо.

1 Ответ

3 голосов
/ 18 марта 2010

Если вам просто нужно знать, существует ли он, то, возможно:

var exists = db.SomeTable.Any(row => row.Id == id);

Если вы хотите строку (или null, если она не существует), то:

var row = db.SomeTable.FirstOrDefault(row => row.Id == id);

на самом деле, в .NET 3.5 возможно преимущество в использовании:

var row = db.SomeTable.Where(row => row.Id == id).FirstOrDefault();

но это исправлено в 4.0 и оба работают одинаково. Разница в том, что в 3.5SP FirstOrDefault(predicate) не проверяет диспетчер идентификации, поэтому он попадет в БД, даже если он уже знает о строке, которую вы просили (потому что у нее есть в памяти).

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