У меня есть следующая сущность я хочу произвести поиск по .. как я могу объединить два поля, чтобы получить правильный ввод ..Как объединить два поля в linq?
что-то вроде этого
var personnels = dbContext.Set<Personnel>()
.Where(p =>
(p.FirstName + ' ' + p.Surname).Contains("John Smith")
);
Когда я, что он говорит
Невозможно создать постоянное значение типа «System.Object». В этом контексте поддерживаются только примитивные типы или типы перечислений.
Это код, который я пытаюсь исправить
var personnels = dbContext.Set<Domain.Entities.App.Personnel>().Where(p =>
((p.GivenName + p.Surname).Contains(criteria.PersonnelName) || String.IsNullOrEmpty(criteria.PersonnelName))
&& (p.PersonnelRoleId == criteria.PersonnelRoleId || (criteria.PersonnelRoleId ?? 0) == 0)
&& (((criteria.ActiveOnly && (p.ActiveFlag)) || (criteria.ActiveOnly == false)))).AsEnumerable();
Код работает, но он работает только тогда, когда критерием является JohnSmith не Джон Смит ..
поэтому линия это
(p.GivenName + p.Surname).Contains(criteria.PersonnelName)
, как я могу получить место в там
(p.GivenName + ' ' + p.Surname).Contains(criteria.PersonnelName)
не работает
Возможный дубликат [Использование содержит() в LINQ to SQL] (http://stackoverflow.com/questions/2369022/using-contains-in-linq-to-sql) –