2012-01-19 23 views
1

実際の作業を開始する前に、EF4と継承で簡単なことをやっています。私はそれを多くの方法で試しましたが、私はこれを解決できません。私はので、コーディング規約のデータベーステーブルに接頭辞を維持する必要が 「モデルからデータベースを生成」を実行すると、Entity Framework 4がテーブル名を変更します

  • reporting_Items(アイテムID、など)
  • reporting_DataItems(アイテムID、など):

    は、私は2つのテーブルを持っています。

    次に、ItemおよびDataItemという名前のマップされたエンティティを持ちたいのですが、DataItemはItemsから継承します。

    私はDatabase Firstを実行してテーブルを作成しましたが、reporting_DataItemsからItemIdキーを削除しました。

    私はデータベースからモデルを生成しました。私はそれぞれの項目とのDataItemに改名

  • reporting_DataItems

reporting_Item

  • :それはエンティティを作成しました。次に、DataItemとItemの継承関係を作成しました。

    この時点まで私は、私が望むような名前のエンティティと、私が望むような名前のテーブルと継承を持っています。 問題は、今私はモデルからデータベースを生成実行する場合、それはすべてのテーブルを削除し、この名前でそれらを作成することです:

    • アイテム
    • Items_DataItem

    何私をacchieveする方法はありますやってみたいです?前もってお礼します

答えて

2

データベースを最初に使用することができます(データベースからモデルを生成した後、モデルからデータベースを生成します)。モデルを最初に使用すると元のデータベースに関する情報は使用されないため、従来のテーブル名ではなく、新しいテーブル名を使用する予定です。表記規則は変更できますが、SQLの生成に使用する.ttテンプレートの変更を意味します。

既存のデータベースを使用したい場合は、このツールはご使用のシナリオ用ではないため、モデルからデータベースを生成しないでください。

+0

ありがとうございます。まずデータベース継承関係を追加するためにモデルを微調整し、将来は継承の調整を失うことなくデータベースを変更したいのですがどうすればいいですか?たとえば、 "Entity Framework 4.0 Recipes"という書籍で、データベース関連のテーブルからクラス継承を作成するには、モデルから1 .. *リレーションを削除し、継承関係を追加するようにアドバイスします。 –

+0

私はあなたがDB Firstを実行してから、ModelからDBを生成することで問題が解決したと思うので、この答えを答えとして受け入れるつもりです。私はまだDB Firstを行うことに疑念を抱いています。モデルを調整して(例えば、継承を追加して)、dbを変更します。DBからモデルを更新するときにモデルの微調整が失われると思います。おそらくそれらの微調整をやり直す必要があります。 –

+0

データベースを変更する場合は、「データベースからモデルを更新する」を使用する必要があります。それはあなたのモデルに変更をプッシュします - モデルのあなたの手作業の編集の大部分は維持されるべきですが、あなたの変更が上書きされる状況があります。 –

関連する問題