整数包含使用Linq

时间:2013-06-14 14:29:41

标签: c# entity-framework linq 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;

问题是C#...

中的整数数据类型不提供Contains方法

2 个答案:

答案 0 :(得分:24)

尝试:

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

答案 1 :(得分:3)

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

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