【发布时间】:2013-11-01 21:46:36
【问题描述】:
所以我试图从我的数据库中获取每个月的利润列表。 我想循环执行此操作,我认为这将是最好的解决方案。
这里有一个循环,我想计算每个月的利润。
using (var context = new ModelContext("ConnectionStringDbMagazynier"))
{
for (int i = 0; i < 12; i++)
{
decimal q = (from ar in context.Archives
where ar.SalesDate <= DateTime.Now.AddYears(-1).AddMonths(i + 1) && ar.SalesDate >= DateTime.Now.AddYears(-1).AddMonths(i)
let sum = context.Archiwum.Sum(x => x.Price)
select sum);
profits[i] = decimal.ToDouble(q);
}
}
从这个查询中我得到一个错误:
Error 2 Cannot implicitly convert type 'System.Linq.IQueryable<decimal>' to 'decimal'
我的问题是,如何让它出现错误?这个解决方案可以吗?万一,我在特定月份没有卖任何东西并且总金额为空?
【问题讨论】:
-
使用 .Any() 我得到“无法将类型 'bool' 隐式转换为 'decimal'”
-
对不起。试试
.Single()stackoverflow.com/questions/1544322/… -
更好的是,.SingleOrDefault() 所以如果当月没有销售,结果将为 0。
-
嗨,谢谢,帮忙,我知道这会更容易,情况是我必须在 LINQ 中执行此操作,这就是任务
-
您正在从两个表中查询,但我没有看到它们之间定义了任何协同关系。