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

时间:2015-01-06 22:37:36

标签: c# linq

我有一个如下代码段:

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

当我运行这个时,我在标题中收到一条错误消息。我的查询返回了我定义的复杂类型,以及其中一个属性'那种复杂的类型是:

public string Zip { get; set; }

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

2 个答案:

答案 0 :(得分:3)

它应该是双引号...包含(“ - ”)。

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

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

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

仅供参考: 如果使用实体框架,则不需要ToLower()

答案 1 :(得分:2)

假设这是一个实体框架查询,Char不是基本类型,因此是错误。试试var bb = results.Where(r => !r.Zip.Contains("-"));

在此处找到类似的(重复):Why does this LinQ query not like chars?