我有一个使用Difference =>的sql语句 http://msdn.microsoft.com/en-us/library/ms188753.aspx
我在存储过程中执行此操作但我想更改为LINQ。在LINQ中是否等于差异?
例:
WHERE (DIFFERENCE(C.LastName, ''' + @name + ''') >= 4
由于
答案 0 :(得分:2)
System.Data.Objects.SqlFunctions有(AFAIK)所有有用的T-SQL函数,如Difference,Soundex,Like等。 这些函数在Linq2Sql的where子句中转换为它们的T-SQL等价物。
编辑:哎呀,那是4.0。对于那个很抱歉。也就是说,为此,您可以在数据库中创建一个用户定义的函数,并将该函数添加到您的DBML文件中并像调用SqlMethods.Like(我正在考虑的那样)调用它。 Here's the MSDN docs on it
基本上你只是创建一个UDF,它接受与DIFFERENCE相同的输入并返回相同的结果。该函数除了调用DIFFERENCE方法之外什么都不做。然后在DBML中公开它,并在查询中使用您的函数。
答案 1 :(得分:0)
不,没有.NET方法可以转换为。
答案 2 :(得分:0)
.NET没有内置的Soundex功能。请参阅this article,了解如何在C#中实现Soundex,包括T-SQL的DIFFERENCE()函数使用的算法。