Предположим, у нас есть таблица Fruits
, и я написал метод GetFruitName. Fruits имеет столбец FruitName
из string/varchar
тип, который может быть пустым. Итак, если FruitName имеет значение null, я просто хочу вернуть FruitName в качестве фрукта, объединенного с FruitId.Условная проекция с использованием тройного оператора в LINQ Выберите
Я получаю эту ошибку при вызове метода.
LINQ к Entities не распознает метод 'System.String Format (System.String, System.Object)' метод, и этот метод не может быть переведен в выражение магазина.
public class Fruit
{
public Guid FruitId { get; set; }
public string FruitName { get; set; }
}
public string GetFruitName(Guid key)
{
return dbContext.Fruits
.Where(fr=> fr.FruitId== key)
.Select
(
fr=>
fr.FruitName!= null
? fr.FruitName
: $"Fruit_{fr.FruitId}"
)
.SingleOrDefault();
}
Edit: мне было интересно, если бы мы могли сделать это без использования промежуточной переменной с проверкой нулевой, если заявления.
Спасибо, Христос. Да, я уже исправил решение этим методом. Но я с нетерпением ожидал любой встроенной коррекции без промежуточной переменной. – Ankit
@Ankit См. Мое обновление. Я думаю, что без переменной temp вы можете написать таким образом. – Christos
Да, работает. Кроме того, он также работал над использованием регулярной конкатенации строк. – Ankit