当前位置: 首页 > 编程语言 > C#

创建方法转换成SQL?分享

时间:2023-04-10 22:51:55 C#

创建一种转换为SQL的方法?在我正在处理的应用程序的数据库中,有一条记录有一个“日期”字段。在代码中很多地方我们需要将其转换为会计年度,以便进行分组、选择和过滤。下面是一些查询的示例:varquery=fromrinDB.recordsletfy=r.Date.Month>=10?r.Year+1:r.Year其中fy=2010选择r;现在我知道我可以编写一个表达式方法来使用相同的过滤器,但是如果我想用它来进行选择和分组怎么办?我不想在所有查询中一遍又一遍地写第二行。如果能够这样做就好了:varquery=fromrinDB.recordsletfy=r.Date.GetFY()wherefy=2010grouprbyfyintogselectg.Count();这样不同的client可以有不同的FY定义等等,都可以定义在同一个地方。有没有办法做到这一点?编写一个普通的GetFY方法只会抛出“无法转换为SQL”(或者它实际上是什么)异常。显然这在某种程度上可以转化为SQL,我只是不知道是否有一种简单的方法可以重新创建LINQtoSQL以供重用。提前致谢。如果可以将其编写为SQL函数,则可以创建一个在C代码中使用的假C#函数,并告诉LINQ将其映射到SQL函数。映射是通过属性完成的。您需要执行以下操作:[Function(Name="udf_GetFY",IsComposable=true)]publicintgetFY(DateTimet){return5;//valuedon'tmatter}那么:以上就是C#学习教程:创建一个转换为SQL的方法?所有分享的内容,如果对你有用,需要了解更多C#学习教程,希望大家多多关注——varquery=fromrinDB.recordsletfy=GetFY(r.Date)wherefy=2010grouprbyfyintogselectg.Count();本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: