从DB中选择最接近的上一年现金

时间:2015-05-19 21:18:23

标签: c# asp.net-mvc linq linq-to-sql

我正在尝试从最近的一年中选择现金(十进制)金额(db列被称为年份,但是是DateTime类型)。这给了我刚从输入中获得的现金。有关修复查询的建议吗?

ViewBag.priorYearCash =  ((from r in db.FinancialPeriods  
                           where r.Year.Year < financialPeriod.Year.Year
                           orderby financialPeriod.Year.Year descending
                           select financialPeriod.Cash)
                          .First()).ToString();

感谢您的帮助,

鲁本

1 个答案:

答案 0 :(得分:1)

您的查询返回了您用来过滤查询的Cash对象的financialPeriod值。它应该是

ViewBag.priorYearCash =  ((from r in db.FinancialPeriods  
                           where r.Year.Year < financialPeriod.Year.Year
                           orderby r.Year.Year descending
                           select r.Cash)
                          .First()).ToString();

附注:可能没有必要调用.ToString(),您可能希望按实际DateTime属性排序,而不是按年份排序,以确保您获得上一年的最新值 - 即

orderby r.Year descending