Int.Parse in Linq Expression
Ich habe folgenden Linq-Ausdruck. Ich möchte die Summe der numerischen Werte im Feld Nvarchar berechnen. Ich benutze folgenden Code, um dies zu tun. Aber ich bekomme eine Fehlermeldung, wenn ich versuche, dies auszuführen.
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();
Fehlerbeschreibung:
LINQ to Entities erkennt die Methode 'Int32 Parse (System.String)' nicht und diese Methode kann nicht in einen Geschäftsausdruck übersetzt werden
Wie kann ich dieses Problem lösen und diesen Code besser schreiben?
Ich ändere den Code dazu
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();
bekomme aber diesen fehler