我正在尝试从最近的一年中选择现金(十进制)金额(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();
感谢您的帮助,
鲁本
答案 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