2016-06-21 14 views
0

Epicor10でコードをC#に変換しました。 オンボードコンパイラではこのコードが許可されていますが、APIからトリガされたときに受信します。LINQ to Entitiesは、 'System.Object get_Item(System.String)'メソッドを認識しません。Epicor10

LINQ to Entitiesは、 'System.Object get_Item(System.String)'メソッドを認識しません。ストア式に変換することができます。

私はそれは私のwhere句のこの部分に絞っあります

&& string.Compare((string)Part_Row["ShortChar01"] ,(string)"None",true)!=0 

それはこのスニペットの一部です:修正する方法について

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)) 

提案。私は他のポストから、b/c linqがこれをSQLに送信していることを理解しています。翻訳に問題があります(または同様のもの)

インデクサー?

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)) 

おかげで、 JMは

+1

'Part_Row'のタイプは何ですか?また、インデクサのコードを表示できますか?これを 'FirstOrDefault(式)'に書き換える方法がなければなりません。 –

+0

質問を編集してください。コメントのコードは読みにくいです。 –

+0

これは初めてのことです。 – JMar

答えて

0

です正確に何である

「私は、これは、B/Cは、LINQは、SQLにこれを送信しているし、翻訳に問題がある起こることの他の記事から理解します」ハプニング。 EFはstring.CompareをSQLメソッドに変換する方法を知らない。

&& string.Compare((string)Part_Row["ShortChar01"] ,(string)"None",true)!=0 

は、SQL Serverの設定に応じて

&& ((string)Part_Row["ShortChar01"]).ToLower() != "none" 

する必要がありますが、デフォルトでは大文字と小文字を区別するすべての文字列比較を設定できるように、あなたも、)(TOLOWERを必要としません。

+4

例外OPは間違いなく 'string.Compare'によって引き起こされませんが、明らかに' Part_Row ["ShortChar01"] '(' 'System.Object get_Item(System.String)'別名インデクサー) –

+0

はい、彼エラーはそれを指していますが、私はそれが文字列によるものだと確信しています。 EFはそれを処理する方法を知りません(少なくとも私がEFを使用した最後の時間)。 – Spivonious

+0

*前回私はEFを使用しました*それは4.1より前だったに違いない...本当にインデクサーです。 –

関連する問題