无法在 MVC 中创建 'System.Char' 类型的常量值

Unable to create a constant value of type 'System.Char' in MVC

我有如下代码段:

var results = business.Where(b => b.Description.ToLower().Contains(request.ServiceName.ToLower()));
var bb = results.Where(r => !r.Zip.Contains('-'));

当我 运行 这样做时,我在标题中收到一条错误消息。我查询 return 我定义的复杂类型,该复杂类型的属性之一是:

public string Zip { get; set; }

我想排除所有在 zip 部分不包含破折号的条目。

假设这是一个 Entity Framework 查询,Char 不是原始类型,因此会出现错误。尝试 var bb = results.Where(r => !r.Zip.Contains("-"));

在这里找到了一个相似的(重复):Why does this LinQ query not like chars?

应该是双引号...Contains("-")。

var bb = results.Where(r => !r.Zip.Contains("-"));

此外,如果您只关心最终结果,可以将两个 where 子句合二为一。

var results = business.Where(b => 
   b.Description.ToLower().Contains(request.ServiceName.ToLower()) && 
   !b.Zip.Contains("-"));

仅供参考: 如果您使用 Entity Framework,则不需要 ToLower()