Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用复合键ASP.NET Web API选择结果集(筛选器)_C#_Linq_Entity Framework 6_Asp.net Web Api2 - Fatal编程技术网

C# 使用复合键ASP.NET Web API选择结果集(筛选器)

C# 使用复合键ASP.NET Web API选择结果集(筛选器),c#,linq,entity-framework-6,asp.net-web-api2,C#,Linq,Entity Framework 6,Asp.net Web Api2,我有一个这样的表,Year和Month一起创建一个复合键 +------+-------+------------------+------------------+ | Year | Month | Numeric Column 1 | Numeric Column 2 | +------+-------+------------------+------------------+ | 2016 | 12 | 455 | 56600 | &

我有一个这样的表,
Year
Month
一起创建一个复合键

+------+-------+------------------+------------------+
| Year | Month | Numeric Column 1 | Numeric Column 2 |
+------+-------+------------------+------------------+
| 2016 |    12 |              455 |            56600 | <
| 2017 |    11 |            10.56 |            98000 |
| 2017 |    12 |             45.2 |          56422.5 | <
| 2018 |     1 |              550 |            12200 |
| 2018 |     2 |              440 |            52000 |
| 2018 |     3 |                0 |               11 |
| 2018 |     4 |                0 |               11 |
| 2019 |     1 |              123 |             4200 |
+------+-------+------------------+------------------+
我已按
订购了此表,然后我按如下方式应用筛选器

IQueryable<Balance> reportToReturn = _context.Balances.OrderBy(b => b.Year).ThenBy(b => b.Month).AsQueryable();
reportToReturn = reportToReturn.Where(b => b.Year >= report.StartYear && b.Year <= report.EndYear);
reportToReturn = reportToReturn.Where(b => b.Month >= report.StartMonth && b.Month <= report.EndMonth);
List<Balance> result = reportToReturn.ToList();
IQueryable reportToReturn=\u context.Balances.OrderBy(b=>b.Year)。然后by(b=>b.Month)。AsQueryable();

reportToReturn=reportToReturn.Where(b=>b.年>=report.StartYear&b.年b.月>=report.StartMonth&b.月您的Where子句错误。您需要分别处理第一年和最后一年,例如:

var result = balances
    .Where(x => 
        x.Year == startYear && x.Month >= startMonth ||
        x.Year > startYear && x.Year < endYear ||
        x.Year == endYear && x.Month <= endMonth);
var结果=余额
.其中(x=>
x、 年==开始月份和开始月份>=开始月份||
x、 年份>开始年份和结束年份<结束年份||
x、 年==年底和x月
var result = balances
    .Where(x => 
        x.Year == startYear && x.Month >= startMonth ||
        x.Year > startYear && x.Year < endYear ||
        x.Year == endYear && x.Month <= endMonth);