Ich habe Stück Code in C# in Epicor10 konvertiert. Der an Bord Compiler ermöglicht für diesen Code, aber wenn es von der API ausgelöst I erhalten:LINQ to Entities erkennt die Methode 'System.Object get_Item (System.String)' nicht Epicor10
LINQ to Entities nicht die Methode ‚System.Object get_Item (System.String)‘ Methode, und diese Methode kann nicht erkennen in einen Geschäftsausdruck übersetzt werden.
Ich habe es zu diesem Teil meiner where-Klausel eingrenzen:
&& string.Compare((string)Part_Row["ShortChar01"] ,(string)"None",true)!=0
es Teil dieses Schnipsel ist:
var ttRcvDtlRow = ttRcvDtl_iterator;
foreach (var Part_iterator in (from Part_Row in Db.Part
where string.Compare(Part_Row.Company, ttRcvDtlRow.Company, true) == 0
&& string.Compare(Part_Row.PartNum, ttRcvDtlRow.PartNum, true) == 0
/*&& string.Compare((string)Part_Row["ShortChar01"] ,"None",true)!=0*/
&& string.Compare((string)Part_Row["ShortChar01"] ,(string)"None",true)!=0
select Part_Row))
Vorschläge, wie sie zu beheben. Ich verstehe aus anderen Posts, dass dies passiert b/c Linq sendet dies an SQL und es gibt ein Problem in der Übersetzung (oder etwas ähnliches)
Indexer?
Erp.Tables.Part Part;
foreach (var ttRcvDtl_iterator in (from ttRcvDtl_Row in ttRcvDtl
where (string.Equals(ttRcvDtl_Row.RowMod, IceRow.ROWSTATE_ADDED, StringComparison.OrdinalIgnoreCase) || string.Equals(ttRcvDtl_Row.RowMod, IceRow.ROWSTATE_UPDATED, StringComparison.OrdinalIgnoreCase))
&& String.IsNullOrEmpty(ttRcvDtl_Row.LotNum)
select ttRcvDtl_Row))
Danke, JM
Was ist der Typ von 'Part_Row'? Und können Sie den Code des Indexers anzeigen? Es muss eine Möglichkeit geben, dies in einen 'FirstOrDefault (Ausdruck)' umzuschreiben. –
Bitte bearbeiten Sie die Frage. Code in Kommentaren ist schwer zu lesen. –
Entschuldigung, dies ist neu. – JMar