我在编写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方法答案 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;