Tsql 如何将Lambda表达式转换为SQL Server查询语法?

Tsql 如何将Lambda表达式转换为SQL Server查询语法?,tsql,linq-to-sql,Tsql,Linq To Sql,这是lambda表达式,我想将其转换为SQL Server查询语法 {x => ((True AndAlso x.Name.ToLower().Contains("_")) AndAlso Not(x.IsDeleted))} 注意:lambda表达式相当于SQLServer的Where子句。 我想将其转换为sql语法,然后将其传递给sql server存储过程。 有什么方法可以实现这一点吗?通常,您可以对LINQ语句返回的IQueryable对象使用ToString方法来查找将在数据库

这是lambda表达式,我想将其转换为SQL Server查询语法

{x => ((True AndAlso x.Name.ToLower().Contains("_")) AndAlso Not(x.IsDeleted))}
注意:lambda表达式相当于SQLServer的Where子句。 我想将其转换为sql语法,然后将其传递给sql server存储过程。
有什么方法可以实现这一点吗?

通常,您可以对LINQ语句返回的
IQueryable
对象使用
ToString
方法来查找将在数据库上执行的确切查询。但是,在这种情况下,我想可能会为WHERE生成类似的内容:

WHERE CONTAINS(Name, '_') AND NOT IsDeleted
但是,你没有提供任何细节,让我来验证

如果没有全文,则以下内容可能更适用:

WHERE Name like '%_%' AND NOT IsDeleted

“True”、“AndAlso”和“Not”都是Visual Basic关键字,为什么用C#-4.0标记此问题?为什么要将其转换为T-SQL?您是使用LINQtoSQL还是使用t-sql?我建议尝试理解sql server(t-sql)中需要查询的内容,而不是“转换”某些内容。可能需要指出的是,
包含
需要全文搜索。