Я ищу простое решение для замены моего стандартизированного спама способ проверить, существует ли запись прежде, чем попытаться получить данные. В настоящее время, каждый раз, когда один из моих методов называют, я делаю что-то к эффекту...
private Record DoSomething(int id)
{
if(data.Records.Count(q=>q.Id==id) > 0)
{
return data.Records.First(q=>q.Id==id);
}
return null;
}
... где я всегда проверяю количество записей для определения существования записи. Должен быть более "изящный" способ сделать это, не называя базу данных дважды. Существует ли путь?
Есть много чистых способов справиться с этим. Если вы хотите первую запись
, соответствующих ID
, вы можете сказать:
Record record = data.Records.FirstOrDefault(r => r.Id == id);
if(record != null) {
// record exists
}
else {
// record does not exist
}
, если вы только хотите знать, существует ли такая запись
:
return data.Records.Any(r => r.Id == id); // true if exists
Вы хотите подсчет того, сколько таких записи
существует:
return data.Records.Count(r => r.Id == id);
Если вы хотите перечисление ( IENumerable
) всех таких записи
:
return data.Records.Where(r => r.Id == id);
Record record = data.Records.FirstOrDefault(q => q.Id == id);
return record;