Linq有“差异”吗?

时间:2009-06-24 23:05:35

标签: linq

我有一个使用Difference =>的sql语句 http://msdn.microsoft.com/en-us/library/ms188753.aspx

我在存储过程中执行此操作但我想更改为LINQ。在LINQ中是否等于差异?

例:      WHERE (DIFFERENCE(C.LastName, ''' + @name + ''') >= 4

由于

3 个答案:

答案 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()函数使用的算法。