問題タブ [entity-framework-4]
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.
entity-framework - コンテキスト内のエンティティが.NetEntityFramework4.0でダーティであるかどうかを確認する方法
エンティティフレームワークのコンテキストに未保存のデータがあるかどうかを確認できるようにしたいと思います。ObjectStateManagerを使用して既存のエンティティの状態を確認する方法を理解しましたが、これには2つの問題があります。
- コンテキスト内のすべてのエンティティをループするのではなく、単一の関数を呼び出して、エンティティが保存されていないかどうかを確認することをお勧めします。
- 追加したエンティティを検出する方法がわかりません。これは、エンティティコンテキストがどのように機能するかを完全には理解していないことを私に示唆しています。たとえば、ObjectSet myContext.Employeesがあり、このセットに(.AddObjectを使用して)新しい従業員を追加した場合、ObjectSetを見ると新しいエンティティが表示されず、.Countも表示されません。増加。ただし、context.SaveChanges()を実行すると、新しいエンティティが保持されます...え?
私はmsdn検索でこれに対する答えを見つけることができなかったので、ここの誰かが私を手がかりにできることを望んでいました。
前もって感謝します。
entity-framework - Entity Framework コンテキストの検索
ここや他のフォーラムでさまざまな質問をした結果、Entity Framework で生成されたエンティティ コンテキスト オブジェクトに関して、自分が何をしているのかわからないという結論に達しました。
背景として、私は LLBLGen Pro を使用した経験が豊富であり、Entity Framework は私にとって約 3 週間前のものです。
「myContext」というコンテキストがあるとしましょう。私のモデルには Employee というテーブル/エンティティがあるため、myContext.Employees が作成されました。これは、このプロパティがコンテキスト内の Employee エンティティのセットを表していることを意味すると思います。ただし、次の方法で新しいエンティティをコンテキストに追加できるため、間違っていると思います。
この新しい Employee エンティティは、myContext.Employees のどこにも表示されません。私が集めた情報によると、この新しく追加されたエンティティを見つける唯一の方法は、myContext.ObjectStateManager に隠れているエンティティを追跡することです。これは、myContext.Employees セットが実際にはコンテキスト内の Employee エンティティのセットではなく、データベースに存在する Employee エンティティの何らかの表現であるように思えます。
この混乱をさらに深めるために、単一の Employee エンティティを見ているとしましょう。Employee と M:1 の関係を持つ Project エンティティがあります (1 人の従業員が複数のプロジェクトを持つことができます)。特定の従業員に新しいプロジェクトを追加したい場合は、次のようにします。
すばらしい、これは実際にプロジェクトをコレクションに追加します。しかし、これは、ObjectSet プロパティがコンテキストから離れてどのように機能するかという問題に真っ向から直面しています。新しいプロジェクトをコンテキストに追加すると:
これは Projects セットを変更しません。
誰かが私にこれを説明してくれたら、とてもありがたいです。また、コンテキスト内のすべての従業員 (またはプロジェクト) のコレクションが本当に必要であり、コンテキストのプロパティとして利用できるようにしたいと考えています。これはEFで可能ですか?
.net - Linqの第一人者-関連エンティティのフィルタリング
私のテーブル構造は次のとおりです。
このクエリの最後に、各人が次のようなデータを入力したオブジェクトグラフが必要です。
- PesonAddressの
- PesonPhoneの
- PesonEmailの
- PesonPhoneの
- 契約-そしてこれにはそれぞれがあります
- プログラムの
今、私は次のクエリを持っていて、それはうまく機能していると思いましたが、いくつかの問題があります:
問題は、それが個人を基準にフィルターするが、契約または契約のプログラムにはフィルターをかけないことです。これにより、OrganizationIdがxの契約だけでなく、各契約の各プログラムにも同じことが当てはまるすべての契約が復活します。
私が欲しいのは、OrgIdがxで少なくとも1つのコントラクトを持ち、そのコントラクトがyのIdでプログラムを持っている人だけです...そして返されるオブジェクトグラフには、一致するコントラクトだけがあります。一致するその契約内のプログラム。
なぜ機能しないのかはわかりますが、変更方法がわからないので機能しています...
これはこれまでの私の試みです:
ただし、これにはいくつかの問題があります(PersonタイプがEFオブジェクトである場合)。
- 私は自分でマッピングを行う必要があります。この場合、マッピングするものはかなりたくさんあります。
- リストをプロパティにマップしようとすると(つまり、Scholarship = currentScholarships)、
IEnumerable
キャストしようとしているためにマップできないと表示されます。EntityCollection
- インクルードが機能しない
したがって、これを機能させるにはどうすればよいですか。私はこれをコンパイルされたクエリとして実行しようとしていることを念頭に置いて、匿名型が出ていることを意味すると思います。
entity-framework - EF 4 - 一致しないキーとの関連付け
POCO を使用しており、Item と ItemContact の 2 つのエンティティがあります。アイテムごとに 1 つ以上の連絡先があります。
項目の主キー:
アイテム ID 言語コード
ItemContact には:
アイテム ID 連絡先 ID
キーが異なるため、参照制約を伴う関連付けを追加することはできません。languageCode が ItemContact になく、ContactID が Item にないため、厳密なプライマリ/外部キーはありません。
直接リンクがなく、アイテムの連絡先を表示したい場合、これをアイテムの連絡先の関連付けにマッピングするにはどうすればよいですか?
エンティティの 1 つはデータベース ビューに由来するため、外部キーをデータベースに追加することはできません
ありがとう
スティーブン・ウォード
entity-framework - EF4 はバッチ更新をサポートできますか?
Entity Framework v4 はバッチ更新/挿入をサポートしているので、1 つ以上のコマンドを db に送信するのではなく、1 回で 1 つ以上のコマンドを DB に送信できますか?
ありがとう
c# - 外部キーを含めるための Entity Framework 1.0 から 4.0 へのアップグレード
現在、サービス ファサードの下にある Entity Framework 1.0 を使用しています。
以下は、問題のデバイスを更新または挿入するために作成した保存方法の 1 つです。
これは現在機能していますが、参照されたプロパティをnullに設定し、挿入を機能させるためだけにそれらを再アタッチする必要があるのはちょっとしたハックだと感じずにはいられません。changedDevice はすでにこれらの値を保持しているため、再度割り当てる必要があるのはなぜですか。
そこで、モデルを EF4 に更新しようと思いました。そうすれば、外部キーに直接アクセスできます。ただし、これを行うと、ダイアグラムからエンティティを削除して再度追加する以外に、外部キーを追加する簡単な方法がないように思われることがわかりました。DB列名からそれらの名前を変更するすべてのエンティティプロパティをすでに経験しているため、これを行いたくありません。誰でも助けることができますか?
orm - Entity Framework: クラスからデータベースを生成する
エンティティ フレームワーク 4.0 でクラスからデータベースを作成することはできますか? 逆にそれを行う方法に関する多くのチュートリアルを見つけました。しかし、ドメインのすべてのクラスを既に実装してテストしているため、それらを大幅に変更することは避けたいと考えています。Google で間違ったキーワードを使用した場合は、リンクを投稿していただければ幸いです。
カリフォルニア州乾杯
visual-studio - IBMDB2プロバイダーをEntityFramework4.0と連携させる方法
「データソースの変更」ダイアログウィンドウにDB2プロバイダーを表示する方法を教えてもらえますか?
手順:
- edmxデザインサーフェスを右クリックします。
- 「データベースからモデルを更新」を選択します
- 更新ウィザードで、[新しい接続]をクリックします
- [データソース]テキストボックスの横にある[変更...]をクリックします。
[データソースの変更]ウィンドウに、リストに次のデータソースのみが表示されます。
「その他」を選択すると、データプロバイダーのドロップダウンに2つのエントリしか表示されません。
DB2プロバイダーをここに表示して、DB2テーブルのモデル化に使用できるようにするにはどうすればよいですか?
VS2010サーバーエクスプローラーを使用してDB2に正常に接続できます。そのための接続文字列は次のとおりです。
プロバイダーは次のようにリストされています。
よろしくお願いします
entity-framework-4 - EF4のデータベース間の関係
EF4がデータベース間の関係をサポートしているかどうか疑問に思っていましたか?例えば:
db1
db2
ef4モデルでこの関係を取得するには、理想的には何をする必要がありますか?
何か考えがありますか?
ありがとう
caching - 遅延読み込みのためのエンティティ フレームワーク 4 キャッシュを理解するのを手伝ってください
エンティティ フレームワーク 4.0 で予期しない動作が発生しています。誰かがこれを理解するのを手伝ってくれることを願っています。この質問のためにノースウィンド データベースを使用しています。また、デフォルトのコード ジェネレーターも使用しています (poco やセルフ トラッキングではありません)。フレームワークのコンテキストをクエリして、それらのオブジェクトをまだフェッチしていない場合にのみ往復することを期待しています。遅延読み込みをオフにすると、この動作が発生します。現在、私のアプリケーションでは、遅延読み込みを簡単にオンにしてからオフにして、目的の動作を得ることができます。それはかなりひどいので、助けてください。これは私の問題を示す良いコード例です。
コードの最初のブロックが不要な往復を行うのはなぜですか?