Если вам просто нужно знать, существует ли он, то, возможно:
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)
не проверяет диспетчер идентификации, поэтому он попадет в БД, даже если он уже знает о строке, которую вы просили (потому что у нее есть в памяти).