Я пытаюсь найти решение для этого, так как часть несколько часов, и я чувствую, что мой мозг готов помочь. У меня есть следующий запрос LINQ.Как получить такую же функциональность как ISNULL in LINQ query
DropDownListItem item = (
from c in context.Practitioners
where c.PractitionerID == id
select new DropDownListItem
{
Id = c.PractitionerID,
DisplayValue = c.FirstName + " " + c.MiddleName + " " + c.LastName,
IsActive = c.IsActive,
DisplayOrder = c.PractitionerID,
CreatedById = new Guid("COFFEEOO-LOVE-LIFE-LOVE-C0FFEEC0FFEE"),
CreatedDate = c.CreatedDate,
}).FirstOrDefault() ?? new DropDownListItem();
response.Data = item;
Есть моменты, когда c.MiddleName может быть пустым. Как я могу обработать его в этом запросе, чтобы, если c.MiddleName имеет значение null, я могу просто присвоить ему пустую строку? Вот что я пробовал уже, что не получилось. - Создано расширение для проверки IsNullOrEmpty. Я узнал, что это не работает с запросами LINQ. - попытался преобразовать c.Middle в строку, выполнив что-то вроде c.MiddleName.ToString(), который также не работал для запроса LINQ. Пожалуйста, дайте мне больше указания относительно того, к чему я должен двигаться. Благодаря!
Это дает мне исключение: «Невозможно применить тип« System.Boolean »к типу« System.Object ». LINQ to Entities поддерживает только листинг примитивных или перечисляемых типов EDM». –
Спасибо @sarvana. Он отлично работает после редактирования! –
это тоже работает: DisplayValue = (c.FirstName ?? string.Empty) + "" + (c.MiddleName ?? string.Empty) + "" + (c.LastName ?? string.Empty) – Coding4Fun