c# – 是否可以在LINQ to SQL中使用访问标量函数?

c# – 是否可以在LINQ to SQL中使用访问标量函数?,第1张

概述我们的数据库中有标量函数,用于返回“客户的任务数量”或“客户的总发票金额”等内容. 我们正在尝试并试图尝试使用无存储过程来执行此 *** 作…通常我们只需在存储过程中调用此函数并将其作为单个值返回. 有没有办法使用LINQ to SQL来使用或访问标量函数?如果是这样,我会有兴趣看一个如何…的例子,如果没有,如何处理这种情况最好…如果它甚至是可行的. LINQ-to-SQL支持与UDF一起使用,如果这是你 我们的数据库中有标量函数,用于返回“客户的任务数量”或“客户的总发票金额”等内容.

我们正在尝试并试图尝试使用无存储过程来执行此 *** 作…通常我们只需在存储过程中调用此函数并将其作为单个值返回.

有没有办法使用liNQ to sql来使用或访问标量函数?如果是这样,我会有兴趣看一个如何…的例子,如果没有,如何处理这种情况最好…如果它甚至是可行的.

解决方法 liNQ-to-sql支持与UDF一起使用,如果这是你的意思.只需将UDF拖到设计器表面上即可完成.这将在数​​据上下文上创建一个匹配方法,标记为 [Function(...,IsComposable=true)]或类似,告诉liNQ-to-sql它可以在查询中使用它(请注意EF不支持此用法).

然后,您将在查询中使用它,如:

var qry = from cust in ctx.Custs           select new {ID = cust.ID,Value = ctx.GetTotalValue(cust.ID)};

这将成为Tsql的东西:

SELECT t1.ID,dbo.MyUdf(t1.ID)FROM CUSTOMER t1

(或那里).

它是可组合的这一事实意味着您可以在查询中使用该值 – 例如在Where()/ WHERE中 – 并因此减少从服务器返回的数据(尽管显然UDF仍然需要以某种方式执行).

Here’s a similar example,显示在数据上下文中使用的伪UDF,说明不使用该方法的C#版本.

实际上,我目前正在研究这样的UDF以可组合的方式提供“模型外”数据 – 即系统的某个特定部分需要访问某些数据(恰好位于同一数据库中)同一模型的一部分,但我想以有趣的方式加入.我也有用于此目的的现有SP …所以我正在考虑将这些SP移植到表格UDF,它提供围绕模型外数据的合同/抽象级别.因为它不是我的模型的一部分,我只能通过UDF获得它 – 但我保留了用我的常规模型组合它的能力.

总结

以上是内存溢出为你收集整理的c# – 是否可以在LINQ to SQL中使用/访问标量函数?全部内容,希望文章能够帮你解决c# – 是否可以在LINQ to SQL中使用/访问标量函数?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1248566.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-07
下一篇2022-06-07

发表评论

登录后才能评论

评论列表(0条)

    保存