【发布时间】:2012-08-20 12:58:44
【问题描述】:
我有以下 LINQ 表达式。我想计算 nvarchar 字段中数值的总和。我正在使用以下代码来执行此操作,但是当我尝试运行此代码时出现错误。
var m = new MaterialModelContainer();
var list =
(from x in
(
from inv in m.INVs
join l in m.LIBs on inv.MESC equals l.MESC
join o in m.OUTs on inv.MESC equals o.MESC
join t in m.TRANs on inv.MESC equals t.MESC
where t.TYPE == "60"
select new
{
l.MESC,
l.LINE_NO,
l.UNIT_LINE,
Description = l.DES + " " + l.PART_NO,
inv.NEW_QTY,
o.PJ,
o.DATE,
o.QTY,
o.QTY_REC,
TranQty = t.QTY,
tranDate = t.DATE
}
)
group x by
new
{
x.MESC,
x.LINE_NO,
x.UNIT_LINE,
x.Description,
x.NEW_QTY,
x.PJ,
x.DATE,
x.QTY,
x.QTY_REC
}
into g
select new
{
QTY_Consum_1 = g.Where(c => int.Parse(c.tranDate) >= cuDate && int.Parse(c.tranDate) <= endDate).Sum(d => int.Parse(d.TranQty))
}
).ToList();
错误说明:
LINQ to Entities 无法识别方法 'Int32 Parse(System.String)' 方法,并且该方法无法翻译 变成商店表达式
我怎样才能解决这个问题并写出比这更好的代码?
我把代码改成这样:
select new
{
QTY_Consum_1 = g.Where(c => SqlFunctions.StringConvert(c.tranDate) >= cuDate && SqlFunctions.StringConvert(c.tranDate) <= endDate).Sum(d => SqlFunctions.StringConvert(d.TranQty)),
g.Key.MESC
}
).ToList();
但收到此错误:
【问题讨论】:
-
也许这个答案会对你有所帮助:Convert string to int in EF 4.0
标签: c# linq entity-framework