我有以下我想搜索的实体..如何组合两个字段以获得正确的输入..
像这样的东西
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 而不是 john smith 时才有效。
所以这条线是这样的
(p.GivenName + p.Surname).Contains(criteria.PersonnelName)
我怎样才能在里面找到一个空间
(p.GivenName + ' ' + p.Surname).Contains(criteria.PersonnelName)
不工作