相关疑难解决方法(0)

创建转换为SQL的方法?

在我正在使用的应用程序的数据库中,有一个记录具有"日期"字段.在代码的许多地方,我们需要将其转换为财政年度,以进行分组,选择和过滤.以下是一些查询可能如下所示的示例:

var query = from r in DB.records
            let fy = r.Date.Month >= 10 ? r.Year + 1 : r.Year
            where fy = 2010
            select r;
Run Code Online (Sandbox Code Playgroud)

现在我知道我可以编写一个Expression方法来使用相同的过滤器,但如果我想用它来选择和分组呢?我不想在所有查询中一遍又一遍地写第二行.能够这样做会很高兴:

var query = from r in DB.records
            let fy = r.Date.GetFY()
            where fy = 2010
            group r by fy into g
            select g.Count();
Run Code Online (Sandbox Code Playgroud)

这样,不同的客户可以有不同的FY定义等,并且都可以在同一个地方定义.有没有办法做到这一点?编写一个普通的GetFY方法只会抛出"无法转换为SQL"(或实际上不管它)的异常.显然,这可以在某种程度上转换为SQL,我只是不知道是否可以通过简单的方式重新创建LINQ to SQL来重用.

提前致谢.

c# linq linq-to-sql

4
推荐指数
1
解决办法
130
查看次数

标签 统计

c# ×1

linq ×1

linq-to-sql ×1