問題タブ [edmx]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - Entity Framework 4.1デザイナーは、選択したエンティティに対してのみ「データベースからモデルを更新」できますか?
状況:データベーススキーマが、システムの情報の理想的な表現とは見なされない場合があり、それを変更できない場合があります。私たちはEntityFrameworkを使用して、このような状況でコーディングするためのより優れた概念モデルを作成してきました。これは、データベースからモデルを更新してから、デザイナーを介して、またはテキストエディターを使用して.edmxファイルを介して直接モデルを変更することを意味します。
問題:データベースからモデルを更新すると、慎重に行ったすべての変更がウィンドウから外されます。これにより、基本的に.edmxファイルを直接編集する必要があるため、新しいエンティティを追加するのが非常に面倒になる可能性があります。
質問:データベースから選択したエンティティのみを更新するようにEntity Frameworkを取得する方法はありますか?または、新しいエンティティを追加するときにモデルの残りの部分をそのままにしておくように指示することはできますか?
ありがとう!
entity-framework - 複数のリンクされた EDMX からの EF 4.1 Poco 生成
私はしたいと思います :
- poco を 1 つの最初のアセンブリ (基本ライブラリ) に生成するための 1 つの最初の EDMX を定義する
- pocos を 2 番目のアセンブリに生成するための別の EDMX を定義する
- 2 番目の EDMX に定義されたエンティティに、最初の EDMX のいくつかのエンティティを言及させる -- 継承または関連付けを通じて
EDMXを2番目のものに再利用/インポートする方法はありますか?
アセンブリ間でこれを行うことは可能ですか?
私の究極の目標は
- 再利用性を低下させることにより、pocos (および関連するリポジトリ...) の連続した層を持ちます。
- それぞれが特定のデータベースのバージョンを表す 2 つの EDMX セットを比較して、
- スキーマの差分 (xml 差分...) を計算し、
- (半) データベースのコンテンツを移行するためのコードを自動的に生成します。
どんなヒントでも大歓迎です。ありがとう。
ティエリー
entity-framework - 設計上の決定:複数のEFEDMXファイル
Entity Frameworkを使用したことがある場合は、EDMXが優れていることをご存知でしょう。また、それが巨大になり、ほとんど管理できなくなる可能性があることも知っています。
大きくなると、2番目または3番目のEDMXを作成したくなります。データベース内のスキーマごとに1つでも作成できます(例として)。
このような分離はEDMXの編成に役立ちますが、同じ名前空間内のエンティティのコンテキストを分離する可能性があります。
さらに、個別のEDMXファイルは、EDMXファイル間でのJOIN操作により、過剰で冗長なデータベース通信が発生する状況を引き起こす可能性があります。
しかし、EDMXが大きいほど、使用が難しくなるという事実は変わりません。それが正しいことを確認することはより困難です。壊れやすいです。
EDMXファイルを分解しますか?いつそれを行うかについての経験則はありますか?
entity-framework - EDMX 円形ナビゲーション
関連する 2 つのエンティティがあり、それらの間の既定のナビゲーション プロパティ (一方が他方を指して戻る) のままにしておくと、エンティティ データを保存できないことがわかりました。保持できるナビゲーション プロパティは 1 つだけです。
例えば:
これらの循環ナビゲーション プロパティを検出する簡単な方法を知っている人はいますか? 1 つの方法は手動でそれらを探すことであることは知っています。私たちはそれを行っていますが、EDMX には何百ものエンティティがあり、「手動」アプローチは現実的な選択肢ではないことが証明されています。
ありがとう。
entity-framework - .edmx を DbModelBuilder にロードする
次のプロジェクトで Entity Framework 4.1 を使用する予定ですが、適切な方法を見つけるのに苦労しています。要するに、エンティティが Web サービスを通過する多層アプリケーションを構築し、できるだけきれいに保つために、自己追跡エンティティではなく POCO を使用したいと考えています。また、エンティティのベースとして使用される SQL 2008 データベースが既に存在します。
私がこれまでに読んだことから (特にhttp://msdn.microsoft.com/nl-nl/magazine/hh148150%28en-us%29.aspxに関する Julie Lerman の記事から)、次のように思われます。
- Database First アプローチを使用すると、モデルを編集するための美しい .edmx が得られますが、常に POCO ではなく永続性を認識するオブジェクトになってしまい、私の状況では役に立ちません。
- Code First アプローチを使用する場合、「ADO.NET DbContext ジェネレーター」は部分的にしか役に立ちません。.edmx からエンティティを生成しますが、外部キーとカーディナリティを正しく取得するために必要なコードは生成しません。これは、コードがそのままでは機能しないことを意味します (- edit、not true、以下の私の投稿を参照してください
-)。
- a)POCOでデータ注釈を使用します。これは、POCOをデータベース情報で汚染し、EntityFrameworkアセンブリへの依存関係も作成するため、醜いものです。
- b) DbContext.OnModelCreating に渡された DbModelBuilder を使用して、正しい外部キー、マッピングなどの情報 (つまり、「流れるような」API) を設定します。また、API は「流れるような」ものかもしれませんが、既存のデータベースと一致するようにこのすべての情報を正しく設定することは依然としてかなり困難です (そしておそらく保守不可能です) ( http://sessionfactory.blogspot.com/2011/04/conventionsを参照)。 -in-entity-framework-41.htmlのいくつかの例)。
「DbModelBuilder-way」が非常に多くの労力を必要とする理由は、それが逆に使用されるように設計されているためだと私は認識しています.それらは(うまくいけば)既存のデータベースと一致します。ただし、「DbModelBuilder の方法」は、最終的に最良の結果を生み出すように思えます。つまり、データベース メタデータを含まない純粋な POCO です。
さて、これをすべて言ったので、私の質問は次のとおりです。外部キー、列マッピング、およびその他の情報を流暢な API を介して手動で指定する必要がないように
、.edmx を DbModelBuilder にロードする方法を知っている人はいますか? ?
データベース ファーストのシナリオのようにマッピングを視覚的に編集でき、必要なすべてのメタデータが DbModelBuilder に格納されているため、きれいな POCO を取得できるため、これが両方の長所になると思います。
c# - edmxからプロパティ名をコピーして貼り付けます
モデルを更新し、30列のテーブルを追加したと仮定します。
次に、この30個のプロパティを使用してビジネスクラスを作成する必要があります。
このクラスを作成したツールは使用したくありませんが、edmxファイルからプロパティの名前をコピーできるようにしたいだけです。
そうするための良い方法はありますか?各プロパティをコピーして貼り付けるのは非常に難しい作業です。
entity-framework - Entity Framework モデル エディターの関連行が正しく表示されない
多くの場合、.edmx モデル エディターの関連行が「めちゃくちゃ」になってしまいます。
通常、私の関係の終わりはエンティティに直接ありますが、.edmx ファイルを再度開くと、それらのほとんどが数ピクセルずれていることがあります (25 など)。
たいした問題ではないのですが、どなたか解決方法を教えていただけないでしょうか。
ありがとう!
c# - Entity Framework - 定義済み
これまで遭遇したことのない EDMX ファイルに問題があります。サイトの実行中またはデバッグ中にランダムに見えるように、EF は爆撃し、すべてが再定義されていると不平を言います。アプリ プールを再起動し、デバッガーを毎回再接続する必要があります。その後、中断したところからやり直します。その後、次に爆発するまで再び機能します。
別の名前で EDMX を既に再作成したため、MyAppEntities* 1 *
エラーは次のとおりです。
entity-framework - Entity Framework が新しい空の edmx を複数形にしない
新しく作成されたedmxが追加されたエンティティセットを複数形にしないという問題があり、代わりにエンティティ名に「セット」を追加します。
- エンティティ名: 人
- エンティティ セット名: PersonSet
デフォルトで複数形にするべきだと思い、Visual では何も変更しません。
編集: 既存のデータベースから作成された edmx の場合、複数形にするかどうかを選択するオプションがあります。また、edmx のデザイナー部分にもそのオプションがありますが、それを変更したくなく、更新ごとに変更を失いたくありません:
entity-framework-4 - エンティティ モデルから生成されたオブジェクトは Null 許容の外部キーを作成しません
データベース内の null 許容外部キーに関して、いくつかの奇妙な動作に気付きました。エンティティ フレームワークを使い始めたばかりなので、何か間違っている可能性がありますが、これを理解できません。
次の 2 つのテーブルがあるとします: (CountryID は null 許容の外部キーです)
新しいエンティティ モデルを作成すると、次のようになります。
ただし、CountryID プロパティは True ではなく、Nullable (None) に設定されています。明らかに、これは非常に些細な例ですが、大規模なデータベースでは、これらすべてを手動で切り替えるのは困難です。int?
エンティティ フレームワークでこれらの外部キーに nullable を使用する方法はありますか?