2011-12-30 11 views
0

テーブルごとに必要なプロジェクトを開始しようとしています。私はこれまでNHibernateでこれを行ってきましたが、XMLマッピングファイルを手作業で編集する必要がなくなり、Entity FrameworkとDesignerを使用しようとしています。ディスクリミネータのテーブルを選択できません(モデルファースト)

私はオンラインこの例を以下のしてきた: http://mosesofegypt.net/post/Inheritance-and-Associations-with-Entity-Framework-Part-1.aspx

ドロップダウン「表またはビュー>を追加<」から表を選択しようと、私は任意のテーブルを選択することはできません、代わりにリストショー」 (空の)"。

failing hard

私はチュートリアルから作られた唯一の偏差が、私は違いを作るべきではない限り、私はこれを言うことができるように、サンプルデータベースオフPersonテーブルを生成しなかったことである(私たちが望みますモデルからDBを生成します。逆もありません)。あなたはモデルからDBを生成する必要がある場合は、マッピング内の任意のテーブルを参照することはできません

答えて

1

...テーブルがに弁別を追加する資格を得るために満たすために必要なものを基準

わからないの両方のマッピング情報についての理由データベースを生成するときにテーブルが生成されます。 EDMXは非常に複雑な構造をしています(NHibernateの非常に簡単なhbmファイルよりもはるかに複雑です)。 EDMXは暗黙のうちに何も記述されていないので、複雑さはさらに悪化します。すべてを記述しなければならず、3回記述する必要があります。

EDMXは3つの部分から構成:データベースの説明 - - - あなたは(クラス)

  • SSDLデザイナーで参照概念モデル

    • CSDLこれはモデルブラウザで閲覧することができますが、それは読み取り専用です
    • MSL - SSDLとMSL間のマッピング(つまり、そのウィンドウで編集しようとしているもの)です。

    model-first(デザイナでエンティティを描画してデータベースを生成する)を使用する場合は、CSDLのみを定義し、その他のものはすべてデータベースのSQLで生成されます。また、DB生成のために別のテンプレート/ワークフローが必要になるでしょう。なぜなら、デフォルトでは、テーブルごとの継承を使用すると思われるからです。 Database generation power packを確認してください。TPHのテンプレートが含まれている必要があります。

  • 関連する問題