User Define Function, 用户自定义函数,简称UDF. 关于sql server中的udf,请大家参考http://msdn.microsoft.com/msdnmag/issues/03/11/DataPoints/一文。本文主要阐述,在Linq To Sql中,如何使用UDF.

1,UDF 简介
UDF可以分为两中类型。一种为Scalar Valued Function,简称为SVF,是返回值类型的UDF. 另一种为Table Valued Function 简称为TVF,是返回一个table的UDF. 人们通常喜欢拿UDF和Store Procedure做比较。其实,他们各有千秋。UDF最多只能返回一个RowSet,而Store Procedure可以是多个。Store Procedure支持CUD操作,而UDF不支持。但是UDF在sql 中支持内联查询,这个又是Sprocs所不能及的。因此Linq To Sql 也支持UDF的内联查询。
2,SVF
看下面这个例子。返回某个类别产品最小的单元价格。
[转]Linq To Sql进阶系列(四)User Define Function篇CREATE FUNCTION [dbo].[MinUnitPriceByCategory]
[转]Linq To Sql进阶系列(四)User Define Function篇(
@categoryID INT
[转]Linq To Sql进阶系列(四)User Define Function篇)
[转]Linq To Sql进阶系列(四)User Define Function篇
RETURNS Money
[转]Linq To Sql进阶系列(四)User Define Function篇
AS
[转]Linq To Sql进阶系列(四)User Define Function篇
BEGIN
[转]Linq To Sql进阶系列(四)User Define Function篇    
-- Declare the return variable here
[转]Linq To Sql进阶系列(四)User Define Function篇
    DECLARE @ResultVar Money
[转]Linq To Sql进阶系列(四)User Define Function篇
[转]Linq To Sql进阶系列(四)User Define Function篇    
-- Add the T-SQL statements to compute the return value here
[转]Linq To Sql进阶系列(四)User Define Function篇
    SELECT @ResultVar = MIN(p.UnitPrice) FROM Products as p WHERE p.CategoryID = @categoryID
[转]Linq To Sql进阶系列(四)User Define Function篇
[转]Linq To Sql进阶系列(四)User Define Function篇    
-- Return the result of the function
[转]Linq To Sql进阶系列(四)User Define Function篇
    RETURN @ResultVar
[转]Linq To Sql进阶系列(四)User Define Function篇
[转]Linq To Sql进阶系列(四)User Define Function篇
END
用OR Designer(请参考 [转]Linq To Sql进阶系列(四)User Define Function篇  <Function Name="dbo.MinUnitPriceByCategory" Method="MinUnitPriceByCategory" IsComposable="true">
[转]Linq To Sql进阶系列(四)User Define Function篇    
<Parameter Name="categoryID" Type="System.Int32" DbType="Int" />
[转]Linq To Sql进阶系列(四)User Define Function篇    
<Return Type="System.Decimal" />
[转]Linq To Sql进阶系列(四)User Define Function篇  
</Function>

相关文章:

  • 2021-05-21
  • 2022-12-23
  • 2021-05-31
  • 2021-06-09
  • 2022-02-03
  • 2021-09-30
猜你喜欢
  • 2022-02-20
  • 2022-12-23
  • 2021-09-04
  • 2021-06-03
  • 2022-12-23
相关资源
相似解决方案