問題タブ [entity-framework-mapping]
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-4 - 最初に EF コードを使用してテーブルを監査する
Message
次のようなクラスがあります。
ここで、どのユーザーがいつ既読としてマークしたかなど、Message オブジェクトのステータスを維持したいと考えています。MessageStatusHistory
次のようなクラスを作成しました。
オブジェクト自体からa のすべての履歴を取得できるように、 クラスMessage
とクラスのマッピングをどのようにセットアップする必要があるかについて混乱しています。MessageStatusHistory
Message
また、ステータス履歴テーブルには、一部のユーザーが既読とマークするまでエントリがありません。
EDIT:2次のようにマッピングを構成しMessage
ました:
MessageStatusHistory
マッピングの場合は次のとおりです。
次のテストを実行すると:
ステータス履歴オブジェクトを作成する行がオブジェクトを再挿入Message
しています :( マッピングの問題が原因だと思いますが、HasRequired(x=>x.Message)
よくわかりません。これを解決するのを手伝ってください。
c# - DbContext SaveChanges をオーバーライドする
私は EF 4.3.1 を使用しています。保存時にエンティティのデフォルト値を追加する必要があります。
現時点では SaveChanges() を使用していますが、動作します。
使用するコードからわかるように、特定の DataTypeChangeTracker.Entries<Option>()
をOption
rappresent します。
可能かどうか、および ChangeTracker.Entries のより一般的なバージョンを作成ChangeTracker.Entries<t>()
して、モデル内のすべてのタイプのエンティティをチェックできるようにする方法を知りたいです。私の特定のケースでわかるように、多くのクラスに NoteInternal プロパティがあります。
ご協力いただきありがとうございます!
PS: ここで DYNAMIC データ型を使用する意味はありますか?
c# - 安全のためにmvc3のc#delete関数を変更する
EFを使用してCMSに基本的なCRUDがあり、最初にデータベースを使用して行われました。削除機能は、データベースからレコードを削除するだけです。
以下は、削除のコントローラー コードです。
クライアントの観点からの安全上の理由から、実際にデータベース テーブルからエントリを削除する代わりに、データベース内の値、つまり「削除済み」を「N」から「Y」に変更してから非表示にします。 'Y' の値を持つエントリは、カスタム クエリを介して表示されません。それが理にかなっていれば。私の質問は、このコードを削除しないように変更する方法ですが、その 1 つの値を変更するだけです。
私はそれが次のようになると思います:
しかし、変更される唯一の値、この例では「削除された」値をどこで定義しようとしているのかわかりません。また、値が「N」のエントリのみをビューに返す必要があると言うかもしれません
sql-server - aspnet スキーマと UserRepository/ EF ASPNET MVC 4 を使用してユーザーを作成します。
bd でユーザーを作成する方法について質問があります。aspnet スキーマでユーザーを作成するために userRepository を使用します。
したがって、ユーザーを作成するには、aspnet_user と aspnet_membership テーブルに 1 つの行を作成する必要があります
userId は ID キーなので、これを管理するのは私の bdd です...だから今のところ、私は UserRepository クラスにこのコードを持っています:
しかし、それは aspnet_User と aspnet_Membership の間の外部キーを持つユーザーを作成するための良い方法だとは思いません...終わり ...
誰かが私を助けることができますか?あなたの助けに感謝します
entity-framework - EntityFrameworkでプロパティの自動マッピングを無効にする方法
EntityFrameworkで流暢なマッピングを使用することにしました。私の意図は、属性や自動マッピング機能を使用せずに、すべてをコードでマッピングすることでした。私が見つけた最良の方法は、プロジェクトの各エンティティに実装するクラスEntityTypeConfigurationです。
後で、エンティティの1つにプロパティを追加します。このプロパティは永続化する必要はありません。このプロパティのマッピングを追加するまで、データベースと永続層によって無視されると予想していました。残念ながら、それはそのようには機能せず、プロパティがマップされます。唯一の方法は、IgnoreメソッドまたはNotMapped属性を使用することですが、明示的には使用したくありません。
Entity Frameworkの自動マッピングを停止する方法はありますか?DbModelBuilderからすべての規則を削除しようとしましたが、役に立ちません。
entity-framework - エンティティ フレームワークの調整
問題があり、誰かが助けてくれることを願っています。
これは私の実際の例です。4 つのテーブルがあります:
Person
Plan
Coverage と CoveredMembers
一人一人が多くのプランを持つことができ、それらのプランのそれぞれが多くの補償範囲を持つことができます。これらの各カバレッジには、多数の CoveredMembers を含めることができます。
Plan.PlanType == 1 および CoveredMembers.TermDate == null にフィルターを適用するクエリが必要です。このクエリは、終了していない医療タイプのプランを持っている人を呼び戻す必要があります。しかし、すべての子レコードも含まれている必要があります。プラン、適用範囲、および対象となるメンバーでフィルターに適合する各人。
この SQL ステートメントはまさにそれを行います。
EF(4.0対2010)でこれを行いました
それから
var people = Q 行にブレークポイントを設定して、
ToList() を使用してクエリが実際にデータベースに送信される前 (include ステートメントの前)、そのクエリを取得し、返すべきレコードの正確な量を取得します。
次に、(SQL プロファイラーで) SQL トレースを実行し、クエリをデータベースに送信します (include ステートメント)。データベースに送信されている sql ステートメントがすべてのフィルタリングを失っていることがわかります。基本的に同じ人を返しますが、子オブジェクトのフィルターはなくなり、これらの人々のすべてのデータを返しています。(plan.PlanType = 1 および coveredMember.TermDate = null がありません)
多分これはこれを達成する方法ではありませんか?誰か考えがありますか?EFでも可能ですか?これは非常に単純な SQL ステートメントです (4 つのテーブルにまたがっていますが) ので、これがそれほど大きな問題になるとは思いませんが、何かを正しく行わないことが問題であると確信しています。
entity-framework - Entity Framework Modeling - この単純なデータ構造をモデル化する方法は?
これは比較的単純なデータ構造ですが、これをモデル化するための最適な EF 戦略を見つけるのに苦労しています。それは明らかにTable Per Hierarchyではありません。そこで、Table Per Type を試してみましたが、Client と Person、または Customer と Person の関係が気に入りませんでした。Table Per Concrete Type について読んだ後、そのモデルにも従いません。この ERD をどのようにモデル化しますか?
#アップデート
#その背後にあるビジネス ユース ケースは、複数の企業と取引することです。これらの企業の中には、他の企業を買収したものもあります。親会社 (Acme) は長年の顧客です。子会社 (Zeta) は長年のクライアントです。Acme が Zeta を買収したとき、会社間の関係を処理する担当者を 1 人配置しました (Adam)。Adam は、イベントを通知する必要がある 2 つの異なる電子メール アドレスを持っています。adam@acme.com は顧客通知を受け取ります。adam@zeta.com はクライアント通知を受け取ります。それが私がそれをそのようにモデル化した理由です。Adam はちょっと強迫観念的で、通知を個別のメールボックスに分けておくのが好きです。プログラマーとして、私は Adam が好きではありません。:D
システムには、クライアントと顧客以外にもいくつかの分類があります。また、ベンダー、技術者、ディストリビューターもいます。以下の提案と非常によく似たモデリングを行いましたが、Email テーブルをタイプ固有のテーブル (CustomerEmail と ClientEmail) に分割しました。完璧ではありませんが、「やり遂げる」ためには機能します。
.net - 多重度制約違反の理由は何ですか。
私は別のクラスbのリストを持つクラスAを持っています
他のすべての記事では、クラス B にもクラス A のオブジェクトが含まれている可能性があると記載されていますが、そうではありません。データを入力して保存しようとすると、関係「A_PointCollection」のロール「A_PointCollection_Source」の多重度は1または0..1になります。例外がスローされます。.Note 私は関係を定義しているのではなく、Entity フレームワークに独自に定義させています。だから、可能な解決策を提案してください
performance - コンパイル済みのビューが機能しない
パフォーマンスを向上させるためにコンパイル済みのビューを使用しようとしましたが、ビューを正常に生成し、コンパイル時と実行時の.edmxですべてが同じです。以前は、デフォルトの接続ファクトリのデータ プロバイダーのミスマッチがありました。デフォルトの接続ファクトリを他のデータ プロバイダーに変更しても、.edmx は常にデフォルトの接続ファクトリに SqlClient プロバイダーを使用しますが、クラスのコンストラクターをコメントアウトすると、この状況は克服されました。 .edmx ファイルのこの接続プロバイダーは、app.config の既定の接続ファクトリで指定したものと同じだった後、DbContext を継承します。したがって、コンパイル時に生成される .Edmx と実行時の .edmx ではすべてが同じです。
しかし、コンパイル時にビューを生成し、ビューを使用してパフォーマンスを最適化すると、dbcontext.SaveChanges() を呼び出すと、次の例外がスローされます。
「EntityContainer 'DatabaseContext' のマッピングおよびメタデータ情報は、事前生成されたビューの作成に使用された情報と一致しなくなりました。」
上記の例外は、いくつかの不一致があることを示唆していますが、edmx をチェックしたところ、すべて同じです。だから問題は何ですか。または私はこれを経験しました
さまざまなアセンブリの問題を示唆しているため。したがって、私の場合、POCOクラスがほとんどないproject1と、project1を参照し、project1とDbContextクラスのPOCOクラスを使用する異なるproject2がproject2で定義されており、project2のビューを生成しています。問題 助けてくれてありがとう
c# - EntityFramework 5 Code First 多重継承マッピング (TPC)
わかりました、おそらくこの質問は以前に回答されていますが、私は調査しており、特定の問題の解決策を見つけることができません
このサンプルのコード - Visual Studio 2012 - コンソール アプリ
したがって、複数の継承オブジェクトを持つ EntityFramework Code First モデルがあります。私の問題を表すこの例を作成しました:
モデル
環境
TPC (Table Per Concrete Type) マッピングを使用したい
移行を実行してデータベースを更新した後の結果は次のとおりです。
これは私の期待でした。ここまでは順調ですね。
しかし、その後.......Gender
私は次のようにオブジェクトとプロパティをクラスに追加することにしましたPerson
:(これは私の実際のモデルではなく、単なる例です)
移行を適用してデータベースを更新した後のデータベース モデルは次のとおりです。
なぜYYYYYYYY?
私は何が欠けていますか?EF が参照プロパティを継承階層にマップするようにしたいだけです。私は、テーブルに正確に外部ExecutiveEmployees
キーが含まれていることを期待していますGenders
Employees
Genders
私は自分でこれを試しましたMyContext.OnModelCreating
:
しかし、移行を追加しようとすると、次のエラーが表示されます。
タイプ 'ExecutiveEmployee' のプロパティ 'Gender' は、モデルから明示的に除外されているか、使用されている DbModelBuilderVersion でサポートされていないタイプであるため、マップできません。