2

我正在使用 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 库调用标量函数。

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

4

1 回答 1

4

在某处定义以下函数。

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

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

于 2011-07-07T19:56:52.703 回答