如何在linq中调用UDF到sql查询?

时间:2009-02-01 11:56:29

标签: linq-to-sql

以下sql语句如何转换为linq查询?

select ID, 
       Price, 
       dbo.fGetText(DescriptionID, defaultLanguage, currentUserLanguage) 
from Products

UDF fGetText非常实用,并且在整个代码库中使用,因此需要封装(作为UDF或其他方式,也许是Linq Expression)。

不能选择额外往返数据库服务器。应该只有一个查询,检索3个字段。

非常感谢您的帮助。非常感谢。

2 个答案:

答案 0 :(得分:3)

以下是MSDN文章:

How to: Call User-Defined Functions Inline (LINQ to SQL)

同一页的说明:

  

虽然您可以调用用户定义的   函数内联,函数是   包含在执行的查询中   延迟不会执行直到   查询已执行。更多   信息,请参阅LINQ简介   查询。

     

当你调用相同的功能时   在查询之外,LINQ to SQL创建了一个   来自方法调用的简单查询   表达

另外,请看一下这个13 min screencast.

答案 1 :(得分:2)

您可以将UDF添加到LINQ to SQL DBML文件中,就像添加表和sproc一样。

然后它们成为DataContext上的可执行方法。

Google有很多文章,例如 this