双重如果我有一个POCO类乘小数和Linq中
public class Entry
{
public double Quantity { get; set; }
public decimal Cost{ get; set; }
}
我如何做算术它们在LINQ查询的东西,如
context.Entries.Sum(e => (decimal)e.Quantity * e.Cost);
我得到无法转换对象类型'System.Double'键入'System.Decimal'
编辑:我已经将小数转换为双倍,它的工作原理。
context.Entries.Sum(e => e.Quantity * (double)e.Cost);
我没有看到这个异常调用'.SUM()'用几个手动构造'Entry'实例阵列上。你有异常的堆栈跟踪吗?更多可以提供的代码上下文? – BACON
按运算符优先级'数量'应该转换为十进制并乘以'Cost'(注意:如果您的查询是LINQ to Entities,请使用'AsEnumerable')。你能提供例外细节和堆栈跟踪吗? –
只是一个想法(我知道它并不真正提供答案):你可以通过将数据库中的逻辑存储在存储过程中解决该问题,这可以使用linq执行。 – MarcinJuraszek