... что я пытаюсь использовать команду try catch с
Я предполагаю, что вы, вероятно, хотели написать FirstOrDefault
в зависимости от того, где вы хотите try/catch
.В приведенном вами примере кода я не вижу причин пытаться сделать блок catch одним из операторов lambda.Лучше всего просто использовать FirstOrDefault, поскольку именно поэтому вы можете получить исключение в показанном коде.
var address = db.shops.FirstOrDefault(x => ×.id == ID)?.Address;
if(address == null)
// nothing was found or address is null, do something else
или код, похожий на тот, который вы использовали без моей «оптимизации»
var shop = db.shops.FirstOrDefault(x => ×.id == ID);
if(shop == null) {
// nothing was found, do something else
}
var address = shop.address;
Другая причина не использовать try / catch заключается в том, что он не может быть переведен в SQL и имя переменной db
, которая является контейнером для коллекции shops
, заставляет меня поверить вамиспользуете EF или другой ORM.Таким образом, даже если вы исправите синтаксис и ваш код с помощью добавленных блоков try / catch, вы получите ошибку во время выполнения позже, когда будете выполнять лямбду.