База данных содержит запись с полем, допускающим значение NULL, и я хотел бы запросить из базы данных только это значение для одной записи.
Это можно легко сделать с помощью этого Linq-запроса:
Код: Выделить всё
var value = await context.Table
.Where(r => r.Id == recordId)
.Select(r => r.Field)
.SingleOrDefaultAsync();
Поэтому, когда поле имеет значение, мы получаем это значение. Но когда поле имеет значение «null», вы также получаете «null».
И здесь начинается моя проблема.
Я хочу различать ситуации, когда значение поля равно «null», и когда запись не существует (ошибка).
Вы можете попробовать это
Код: Выделить всё
try {
var value = await context.Table
.Where(r => r.Id == recordId)
.Select(r => r.Field)
.SingleAsync();
}
catch
{
throw new NotFoundException("");
}
И во-вторых: таким образом мы не можем отличить несуществующие записи от ситуации, когда у нас может быть несколько записей (при использовании разных предложенийwhere).>
Подробнее здесь: https://stackoverflow.com/questions/798 ... ase-record
Мобильная версия