将SQL查询转换为整数上类似LINQ表达式的运算符

将SQL查询转换为整数上类似LINQ表达式的运算符,linq,linq-to-sql,Linq,Linq To Sql,有人能把下面的简单SQL语句转换成LINQ吗?StudentID的类型为int 从学生ID为“%1001%”的学生中选择* 谢谢大家! ctx.Student.Where(x => x.StudentId.Contains("1001")) 奇怪的是,你有一个字符串类型的ID。 改用int O、 对不起,我明白了,你写的ID是INT。在这种情况下,您不能在SQL中使用like。 这没有道理。必须先将int转换为string ctx.Student.Where(x => x.Stu

有人能把下面的简单SQL语句转换成LINQ吗?StudentID的类型为int

从学生ID为“%1001%”的学生中选择*

谢谢大家!

 ctx.Student.Where(x => x.StudentId.Contains("1001"))
奇怪的是,你有一个字符串类型的ID。 改用int

O、 对不起,我明白了,你写的ID是INT。在这种情况下,您不能在SQL中使用like。 这没有道理。必须先将int转换为string

ctx.Student.Where(x => x.StudentId.ToString().Contains("1001"))

使用“包含”操作符:

from s in Student
where s.studentId.ToString().Contains("1001")
select s;
试试这个:

db.Students.Where(s => s.StudentID.ToString().Contains("1001"))

它给出了以下错误:“int”不包含“Contains”的定义,并且最佳扩展方法重载“System.Linq.Queryable.Contains(System.Linq.IQueryable,TSource)”具有一些无效参数将其更改为:其中s.studentId.ToString().Contains(“1001”)我假设,因为您在原始查询中将一列与一个字符串进行比较,所以该列本身就是一个字符串。老实说,这种查询违背了我认为使用主键的好的编程实践;这让我想到,也许有更好的方法来实现你想要的,这会让你在前进的道路上减少头痛。您可能需要进行调查。只需重新阅读OP并注意到它声明了一个int,my bad。实际上,StudentID列的类型是int。我想返回与1001匹配的所有行。我相信这是检索包含1001的所有行的唯一简单方法。如果我的理解有误,请告诉我。非常感谢。它起作用了!我以前试过这个,但没有成功,因为我忘了在“1001”中使用引号。非常感谢您的快速回复。