1

複合型を SP の結果にマップしたところ、次のエラーが発生しました。

データ リーダーは、指定された 'CLMModel.GetContractPerformanceReview_Result' と互換性がありません。タイプ 'LastYearProfit' のメンバーには、データ リーダーに同じ名前の対応する列がありません。

これは通常、マップされた型に何か問題があることを示していることを知っているので、それらを調べて微調整しましたが役に立ちませんでした。受信型はdecimal(18, 2)(SQL Server 上で) であり、マップされた型もdecimal(18, 2)です。38,2潜在的に大きな値が検出された可能性があると考えたため、精度を上げようとしましたが成功しませんでした。

値は、この定義を使用して列から生成されるため、正常にマップされない理由はわかりません。

生成された型を使用しようCreate a new Complex Typeとしましたが、それでも失敗します。フィールド名も一致することを確認しました。

広告の支援をいただければ幸いです。SOでこれを検索しようとしましたが、成功しませんでしたが、別の質問があれば教えてください。ありがとうございました。

4

1 に答える 1

1

OK、この原因を突き止めました。これは、この応答を生成するストアド プロシージャが、パラメータに応じて異なる結果セットを作成したことです。これは、手動で実行すると列が表示されたが、エンティティ フレームワークが正しい列を正しく識別できなかったことを意味します。

したがって、教訓は、SPが異なるパラメーターに対して異なる結果を返す場合、それらがすべて同じ列を返すことを確認することです。

于 2012-12-08T10:53:43.113 に答える