問題タブ [self-tracking-entities]
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 - エンティティフレームワークを使用したデータベースの履歴
テーブルに履歴を保存したい。
私はテーブルを持っていますEmployee
。
が変更された場合Employee
、元の値を取得しId
て実行し、変更された値を変更された元の値isActive=False, closedDate=DateTime.Now
で新しいものとして保存Employee
します。
これどうやってするの?Department
また、別の質問です。別のテーブルへの参照があり、このテーブルに履歴を保存したい場合はどうすればよいですか。オブジェクトが変更Department
された場合はどうすればよいですか。Employee
PS私は自己追跡エンティティを使用しています。
wcf - エンティティフレームワーク、自己追跡エンティティ、およびsqlserverファイルストリーム
ファイルの読み取りと書き込みを行うWCFサービスが必要なプロジェクトを開始しました。
このアーキテクチャは、Entity FrameworkSelf-TrackingEntityを使用したDDDに基づいています。
シンプルなGUIは、ファイルのリストを含むグリッドを表示し、ダウンロードできる行をクリックする必要があります。
このアーキテクチャでファイルストリームSQLServer2008機能を使用できますか?この種のエンティティを管理するのに最適な戦略はどれですか?
ありがとう。
.net - Self Tracking Entities vs Pure POCO v. Future Proofing (3 層)
これは明らかに何度も議論されてきたトピックですが、ここでの私のアプローチの角度は少し異なります. 私が理解している限りでは、STE は POCO と見なされます (決して EF dll に関連付けられていません)。独自の変更追跡を処理するための追加の「もの」が内部にあるだけです。次のアプリケーション層を想定しています。
必須ではなく、2 層のセットアップで実行していると仮定するとlazy loading
、STE と POCO の使用に違いはないと私は理解しています。私たちは Web 上にいて、接続されていない環境であるため、選択肢は で追加の SQL クエリを実行するPostback
か、エンティティをアタッチして、必要に応じてプロパティを変更するように設定する必要があります。繰り返しますが (間違っている場合は訂正してください)、コードは同じように見えます。
簡単な例を考えてみましょう。Web フォーム アプリケーションでポストバックを処理しています。
後で、Proj.Business と Proj.Web の間に WCF トランスポート層を導入して、アーキテクチャを 3 層に昇格するように求められたとします。これを Proj.Services と呼びましょう。最初から STE を使用していた場合、はるかに優れた状況にあるのではないでしょうか? ビジネス レイヤーやリポジトリを変更することなく、呼び出しをビジネス レイヤーに転送するだけで済みます。
たとえば、POCO を使用している場合 (スナップショットを想定してみましょう)、このエンティティがコンテキストに既に存在するかどうか (2 層を実行している場合) を確認し、存在しない場合 (3 -tier) それをアタッチし、そのプロパティを変更済みに設定します。将来的に 3 層ソリューションが必要になるかどうかわからない場合は、さらに多くの作業が必要になるようです。一方、最初から STE に対してコーディングしていた場合、余分に不要な (実際には何も害を与えない) コードは、ApplyChanges() の呼び出しだけです。それ以外の場合は、何も失うことはないと思います (遅延読み込みは必要ないと仮定します)。この件についてどう思いますか。
java - Java Application Client を使用して WCF クライアントで STE エンティティを使用する
Entity Framework (Self Tracking Entities) を使用して DAL を開発しました。これらの STE でいくつかの CRUDE 操作を公開する WCF サービスを作成しました。
Java アプリケーション (クライアント) で WCF サービスを使用したいと考えています。
STE は Java クライアント アプリケーションで適切に動作しますか? Java クライアント アプリケーションがセルフ トラッキング エンティティに何らかの変更を加えた場合、それらの変更は追跡されますか?
c#-4.0 - Entity Framework 4.0 セルフ トラッキング ロード ナビゲーション プロパティ
私はデータ アクセス クラスのこのコードを持っています。そこでは、Patient.Addresses、Patient.Examinations、Examinations.LeftEye、Examinations.RightEye など、すべての患者をロードしたいと考えています。
患者に関連するすべてのデータをロードする方法は? アドレスすら読み込めませんでした。
これは現在のコードです:
ありがとうございました。
entity-framework-4 - データベースに重複レコードを作成する逆シリアル化された Entity Framework オブジェクト
DB から取得した .NET 4 エンティティ フレームワーク オブジェクトがいくつかあり、それらを XML にシリアル化します。次に、WPF アプリを終了します (メモリをクリアします)。次に、WPF アプリを再起動し、それらを読み取り (逆シリアル化) して List<> に戻しますが、それらを EF コンテキストにアタッチすることはありません。オブジェクト コンテキストで SaveChanges() を呼び出すと、重複するレコードが作成されますが、逆シリアル化されたものをコンテキストにアタッチしたことがないため、新しいコンテキストがレコードのコピーを作成する理由がわかりません。これは自己追跡エンティティhttp://msdn.microsoft.com/en-us/library/ff407090.aspxと関係がありますか?
ここにレビューがあります...
アプリを起動
オブジェクトを ObjectSet.ToList() _cachedRates にクエリします
XML にシリアライズ
アプリを閉じる
...{後で}...
アプリを再起動する
XML ファイルからオブジェクトをロードします。オブジェクトは、どのコンテキストに対しても Attach() または AddObject() されません。
ユーザーが「保存」ボタンを押すと、コンテキストで .SaveChanges() が呼び出されます
問題: テーブルに一致する行が 2 倍になりました
entity-framework - WCF、Entity Framework 4.1、およびエンティティの状態
WCFサービスを公開するアプリケーションを開発しています。DALでEntityFramework4.1を使用しています。問題は、エンティティをロードするときです(たとえば、Orderを持っている顧客がOrderDetailを持っているとします)。ロードした後、Customer、Order、およびOrderDetailオブジェクトにいくつかの変更を加え(いくつかの新しい注文が追加され、いくつかの既存の注文が削除/更新されます)、オブジェクトグラフをWCFサービスに送信して次のように更新します。
サーバー側で更新された顧客のObjectGraphを受け取ったとき、現在変更追跡がないため、どの注文が削除され、どの注文が変更されたかわかりません。どの順序を削除し、どの順序を変更するかをどのように判断できますか?Entity Framework 4.1でオブジェクトグラフの変更を追跡する方法はありますか?
注:以前は、この問題を解決するセルフトラッキングエンティティを使用していましたが、WCFサービスがJavaクライアントアプリでも使用されるため、STEを削除する必要がありました。したがって、STEは私にとってオプションではありません。
silverlight - WCF、Silverlight 5、自己追跡エンティティ、および (逆) シリアル化
私は Silverlight アプリケーションに取り組んでいます。WCF サービスを使用して、EF 4 セルフ トラッキング エンティティをクライアントとサーバーの間でやり取りします。
読み取りメソッドは、追跡可能なエンティティ コレクションを WCF サービスから Silverlight クライアントに提供するために正常に機能しています。基本的な更新も正しく機能しています。「OfficeEntity」のプロパティを変更し、パラメータとして WCF update メソッドに渡すことができます。私たちが抱えている問題は、エンティティのコレクションの 1 つを更新すると、以下の逆シリアル化エラーが発生することです。たとえば、「OfficeEntity」に「LocationEntity」のコレクションであるナビゲーション プロパティ「Locations」があり、新しい「Location」を「Locations」プロパティに追加して保存すると、逆シリアル化例外が発生します。
officeEntity.Locations.Add(new Location() {LocationName = "テスト 1"});
client.SaveAsync(officeEntity);
例外の詳細:
メッセージを逆シリアル化しようとしているときに、フォーマッタが例外をスローしました: パラメータ :OfficeEntity を逆シリアル化しようとしているときにエラーが発生しました。InnerException > メッセージは、「タイプ Entities.OfficeEntity のオブジェクトの逆シリアル化でエラーが発生しました。名前空間 >'http://schemas.datacontract.org/2004/07/Entities' からの終了要素 'ObjectsAddedToCollectionProperties' が必要です。名前空間 >「http://schemas.datacontract.org/2004/07/Entities」から要素「b:AddedObjectsForProperty」が見つかりました。
問題は、変更追跡プロパティの逆シリアル化にあるようです。これの原因やどこで修正できるかについてのアイデアはありますか?
ありがとう、ジェイソン
winforms - Entity Framework Self Track TrackableCollection をロードする方法関係データは必要なときだけですか?
Entity Framework 4 と Self Tracking Entities を使用しています。スキーマは次のようになります。
患者 -> 検査 -> LeftPictures -> RightPictures
したがって、これら 2 つの関係の TrackableCollection があります。患者 1 - * ....写真。顧客フォームをロードして詳細を閲覧するとき、これらのデータ画像をロードする必要はありません。検査の詳細のために別のフォームがロードされた場合にのみです!
クラス ライブラリをデータ リポジトリとして使用して、データベース (SQL Server) とこのコードからデータを取得しています。
ここで、検査の詳細フォームを呼び出すときに、検査関係 (LeftEyePictures、RightEyePictures) のすべての画像を取得する必要があります。それは遅延読み込みと呼ばれていると思いますが、エンティティ接続をすぐに閉じている間にそれを実現する方法がわかりません。このままでいたいです。
アプリケーションを通じて BindingSource コンポーネントを使用します。
望ましい結果を得るための最良の方法は何ですか?
ありがとうございました。