SQL Serverに接続しているEntity Framework 4.1を使用してPOCOクラスを生成するDBを取得しました。私は '関数のインポート'機能を使用して、結果の行を呼び出して呼び出しを作成するストアドプロシージャもあります。基本的に私が使用しているプロセスがにある: Entity Frameworkで生成された複合型の変更を反映する
- 右クリックModel.edmxに選択します私の希望関数インポートを入力し、ドロップダウン
- から手順を選択
- クリックして名前を付け
- を "カラム情報の取得" をクリックし
- を "新しい複合型を作成" をクリックして "OK"
は、それが結果セットの定義のためのPOCOクラスを作成し、私は何かのように行うことができます。
var query = context.GetMyStuff().AsQueryable();
は結果を取得します。これはうまくいくようです。
私が抱えている問題は、ストアドプロシージャを変更してから、自分のコードに変更を反映させるときです。たとえば、テーブルに追加の列を追加し、結果の一部として列データを返すようにストアドプロシージャを更新しました。その更新を関数のインポートに伝播する方法、つまり、生成されたPOCOにその追加された列の新しいプロパティを持たせる方法はありません。
プロシージャの更新を行うドリルは、C#側に反映されますか?毎回新しいクラスを作る必要がありますか?私にはこれをどうやって行うのか分かりませんでした。
追加情報:
this questionにラディスラフによる応答で提案されているように私は、「更新」するために複雑なタイプを試してみたとき、私は「エラーメッセージが表示されますFunctionImport名が一意であることを確認します"
私は何を試してください。 Brennanが以下に示唆するように、私は同じエラーメッセージを受け取ります。作業を何
は、少なくとも私にとっては、メモ帳++でModel.edmxファイルを開くFunctionImportラインを見つけ、それを再生成し、それを削除することです。それは理想的ではありませんが、効果はあります。
これは同じ質問かどうか分かりません:http://stackoverflow.com/questions/6381423/function-import-when-sp-is-changed –
@Ladislav - それを見ましたが、私が試してみるとそれは私がエラーを取得しますか。私はそれを反映するため上記の質問を編集します。 – itsmatt