2

SQL Server Dbに列を追加し、VS iでデータベースからモデルを更新すると、テンプレートによってコードが自動生成されました。

コードは正常にコンパイルされましたが、データベースにアクセスしようとすると、次のエラーが発生します。

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

Finalizedは、データベースに追加した新しい列です。

誰かがこれを追跡する方法を知っていますか?もしそうなら、将来避けるために従うべき修正または方法論はありますか?

4

3 に答える 3

6

SPを使用している場合は、その中に新しく追加された列を更新します。または、インラインクエリを使用している場合は、新しく追加された列の正確な名前を入力します。話しているテンプレートに、新しく追加された列名が含まれていません。テンプレートを編集してみてください。問題は解決されます。

于 2012-05-29T12:09:41.197 に答える
0

SPを使用している場合は、使用されているエイリアス名を確認してください。例:次のように書く必要があります

'aliasname'としてのフィールド名

ありがとう、クリス・トーマス

于 2014-01-06T10:29:07.293 に答える
0

これが誰かを助けてくれることを願っていますが、このエラーを受け取ったとき、ストアドプロシージャからエンティティタイプを返そうとしていました。

これを修正するには、正しい関数インポートマッピングを追加する必要がありました。edmxで、モデルブラウザビューに移動し、FuntionImportsに移動します。sproc名を右クリックして、関数インポートマッピングを選択します。そこで、sprocの戻り結果を適切なエンティティプロパティにマップできます。

于 2016-01-29T01:28:50.733 に答える