整数包含使用Linq

And*_*rew 13 c# linq entity-framework casting

我在编写linq查询时遇到一些困难,该查询将检查整数中的连续数字是否包含在表的主键中.因此,假设有一个Employees在列上使用主键调用的表Employees.Id.假设此主键是Sql Server数据类型INT.我想使用Entity Framework Code First编写一个linq查询,它将返回主键包含字符串456的所有员工.例如:

string filter = "456";

var results = from e in myDbContext.Employees
  where e.Id.Contains(filter)
  select e;
Run Code Online (Sandbox Code Playgroud)

问题是C#中的整数数据类型不提供Contains方法...

xle*_*ier 27

尝试:

var results = from e in myDbContext.Employees
  where SqlFunctions.StringConvert((double)e.Id).Contains(filter)
  select e;
Run Code Online (Sandbox Code Playgroud)


小智 8

您可以将两者都转换为字符串,然后进行查询。在你的情况下:

string filter = "456"; var results = from e in myDbContext.Employees where e.Id.ToString().Contains(filter) select e;

  • `ToString()` 会抛出类型为 `NotSupportedException` 的异常吗? (2认同)