2011-07-14 5 views
0

EFをORMとして使用しようとしています。私たちは、データベースの構造を表す独自のメタデータを持っており、必要なものはすべて生成します。 "古い" EDMX承認を使用するのか、新しいEDMX無料のアプローチ(DbSetとDbContextを使用するのか)を使用するかどうかは疑問です。独自のコード/ edmx生成を行うと、EDMXを生成してオブジェクトとそのコンテキストを生成することは奇妙に思えます。EntityFramework with EDMX

EDMXの自由なアプローチについては、あまり話がありません。それは誰にも使われていますか?経験豊かな人が自分の印象を共有することはできますか?既知の制限はありますか?長所と短所はありますか?

アッシャー

答えて

1

誰かがコードファーストを使用しているかどうか尋ねていますか? :) の質問の数を確認することで、人々はそれをたくさん使っていると思います。コードファーストxノンコードファーストでは、いくつか質問がありました。私のいくつかは答えた:

を一般的に4つのアプローチがあります:最初の

  • モデル(EDMXから生成されたデータベース)
  • データベースは、 f IRSTコードマッピング(手動で既存のデータベースまたはEF Power Tools CTPによって生成された手動で更新マッピングのために作成されたコードマッピング)

選択で第

  • コード最初の(コードマッピングから生成されたデータベース)
  • データベース(EDMXは、データベースから生成されました) (リンクされた回答に記載されているように)アプリケーションをどのように開発したいかによって決まります。また、ObjectContext APIまたはDbContext APIを使用するかどうかによって異なります。前者は通常、最初の2つのアプローチで使用されます(ただし、秘密は最初のコードでもうまくいきます)。

    コードは、最初のいくつかの制限があります - それは、すべてのマッピングはEDMXは、例えばない機能をサポートしていません:

    • ストアドプロシージャのマッピング(それが最初のコードを使用しているときにSPを実行することはできませんという意味ではありません)
    • SQL関数などのマッピング
    • 定義クエリ、クエリビュー、などの
    • 高度なEDMX機能モデル定義関数

    私が理解できないことは、コード生成ツールとEFを組み合わせようとしている理由です。あなたのものを使用するか、EFのものを使用してください。合併症や非互換性を避けることができます。

  • +0

    回答ありがとうございます(ここと他の場所)。 エンティティレベル検証のための兄弟クラスがないとあなたは気付きました。クラスが部分的に生成されたときに、より良い解決法を知っていますか? –