2012-05-11 20 views
14

既存のデータベースから生成された作業エンティティモデルを持つアプリケーションがあります。テーブルとカラムの名前が異なる以外は、同じスキーマを使用して、アプリケーションを新しいデータベースで指す必要があります。テーブルと列の名前のマッピングを変更するEntity Framework v4.3

たとえば、現在のスキーマには「Answer」のような名前のテーブルがあります。私が指し示す必要がある私の新しいスキーマは、 "tblAnswer"という名前以外はまったく同じテーブルを持っています。

私の列も変更されました。以前は "AnswerId"と呼ばれていたカラムが "zAnswerId"になりました。接頭辞「z」について聞かないでください。長い話ですが、すべての列にあります。

この既存のエンティティモデル(データベースから生成)を新しいデータベースにポイントし、マッピングを調整するにはどのようなオプションが必要ですか?私はthis guideに概説されているように、「コードファースト」マッピングに使用されるいくつかのテクニックを試してきましたが、運が全くありませんでした。私はこれが正しいアプローチであるかどうか、あるいはより意味のある何かがあるかどうかはわかりません。

提案?前もって感謝します。

答えて

36

web.configファイルでデータベースを変更できます。

データアノテーションを使用して、異なるテーブル名とカラム名を使用します。例えば

:あなたの迅速な対応のための

[Table("tblAnswer")] 
    class Answer 
    { 
     [Column("zAnswerId")] 
     public int AnswerId { get; set; } 
    } 
+0

感謝。私は今あなたの提案を実装しようとしている、私はすぐにあなたのための応答を持っています。 – letsgetsilly

+0

私はあなたの提案を実装しました。私が取った手順は次のとおりです。1)正しいデータベースを指すようにapp.configファイルを更新します(私はこの概念証明のためのテストプロジェクトを使用しています)。 2)あなたが提案した属性で部分クラス "回答"を装飾しました。私は現在、 "MetaDataException:指定されたメタデータリソースを読み込むことができません"を受信して​​います。私が知る限りでは、これらの問題を追跡することは困難です。どんな提案もありがたいですが、今問題を解決するのが難しくなります。もう一度あなたの助けをありがとう – letsgetsilly

+0

それは動作していないバマー。より包括的なヘルプについては、Julia LermanのProgramming EF Code Firstのコピーを入手することをお勧めします。あなたがそれを解決する方法、そして幸運を知らせてください。 –

関連する問題