使用BLToolkit和Linq的标量函数

时间:2011-07-07 09:38:21

标签: linq scalar bltoolkit

我正在使用BLToolkit库将我的SQL过程转换为Linq。

现在我遇到了一个小问题,所以如果有人知道这是可能的,我会非常感谢你的帮助。

无论如何我有sql查询看起来像这样(注意:这不是我的实际表名,我只是翻译它们,所以你们可以理解发生了什么)

select
     P.ProductsID,
     P.Name,
     P.Description,
     dbo.GetTax(P.TaxID, getdate()) -- this is what I need help with
from
     Products P

除了我需要在当天为每件产品征税外,这里没什么特别的。

现在我需要将其转换为Linq,但我不知道这是否可能。我试过这样的事情

from p in Products
select new
{
    p.ProductsID,
    p.Name,
    p.Description,
    GetTax(p.TaxID, DateTime.Today) //this is what I need help with
}

它不起作用。 GetWork 功能只是另一个返回税的linq查询。我不知道如何使用BLToolkit库调用scallar函数。

所以问题是这个。是否可以从Linq选择的语句中调用标量函数?

1 个答案:

答案 0 :(得分:4)

在某处定义以下功能。

[SqlFunction(ServerSideOnly=true)]
public static double GetTax(int id, DateTime dt)
{
    throw new NotImplementedException();
}

它将告诉BLToolkit将GetTax转换为SQL。