問題タブ [savechanges]

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.

0 投票する
2 に答える
3960 参照

entity-framework - ADO.Net Data Services で .SaveChanges() メソッドを使用する最良の方法は何ですか?

.SaveChanges() メソッドの使用法に関する良い情報を持っている人はいますか?

データ コンテキスト オブジェクトで .SaveChanges() メソッドを使用しようとすると、さまざまな問題が発生します。既存のデータ ソースからデータを取得し、適切な EntityFramework/DataService オブジェクトを作成し、作成したオブジェクトにデータを入力し、それらのオブジェクトをコンテキストに追加してから、.SaveChanges を呼び出してそのデータを保存しています。

私が思いついたシナリオ (およびそれらに関連する問題) は次のとおりです...各シナリオでは、DataTable の行からデータを取得してオブジェクトを生成し、それらをコンテキストにアタッチする foreach ループがあります。彼らが行く。(注: SetLink 呼び出しを介してアタッチされた 3 つのオブジェクト「メンバー」と 2 つの「アドレス」) - 基本的に、これは 1 つのデータ ストアからデータを取得し、それを Data Services によって公開されるデータ ストアに変換するための変換ツールです。

  • foreach ループの最後 (つまり、ループの外側) で、パラメータなしで .SaveChanges() を 1 回呼び出します。
    • 約 1/3 の OutOfMemory エラー (90,000 回の保存のうち 30,000 回) - 各保存項目はデータベースへの個別の SQL 呼び出しであるため、どのように発生しているのかわかりませんが、メモリ不足になる原因は何ですか?
  • ループごとに 1 回、パラメータなしで .SaveChanges() を呼び出します
    • これは機能しますが、絶対に永遠にかかります(90,000回の保存で8時間)
  • foreach ループの最後に .SaveChanges(SaveChangesOption.Batch) を 1 回呼び出します。
    • 同じ OutOfMemory エラーですが、データベースへの保存はありません
  • ループごとに .SaveChanges(SaveChangesOption.Batch) を 1 回呼び出す
    • 404 見つからないエラー
  • 10 ループごとに .SaveChanges(SaveChangesOption.Batch) を 1 回呼び出す
    • 400 Bad Request エラー (時折)
    • 何度か繰り返した後の OutOfMemory
  • ループごとに 1 回コンテキストを作成するか、ループの開始時にコンテキストを変数として使用するか、使用可能なプライベート メンバー変数として使用するためのランダムな試行回数。
    • さまざまな結果、定量化できない、それほど良いものはありません

このような大量のデータの読み込みを行うときに、クライアント オブジェクトから .SaveChanges() を呼び出す方法として推奨されるものは何ですか? .SaveChanges() がどのように機能するかについて私が得ていないものはありますか? この機能をどのように利用すべきか、および Data Services を介してデータを保存する際の制限事項 (ある場合) について、詳細を提供できる人はいますか? .SaveChanges() メソッド呼び出しに関するベスト プラクティスはありますか? .SaveChanges() メソッド呼び出しに関する特に優れたドキュメントはありますか?

0 投票する
5 に答える
14650 参照

.net - Entity Framework 継承型を保存できません

データ モデルに型ごとのテーブルの継承を実装しました (基本的BaseEntityに、アイテムのすべての基本情報を含むEmployer型と、アイテムから継承する型がありBaseEntityます)。すべてが正しく設定されているように見え、エンティティを使用すると (ADO.net Data Services または Linq to Entities を介して)、Employerタイプと問題がないように見えます。新しいEmployerエンティティを作成して保存しようとすると、問題が発生します。

.AddToEmployerアイテムのように見えないコンテキスト(およびAddObjectまたはのみAddToBaseEntity)。

使用するAddObject("Employer", NewEmployer)と、次のエラーメッセージが表示されます。

EntitySet 名 'DataEntities.Employer' が見つかりませんでした。

使用するAddToBaseEntity(NewEmployer)と、次のエラーメッセージが表示されます。

依存操作の有効な順序を判別できません。外部キーの制約、モデルの要件、またはストアによって生成された値が原因で、依存関係が存在する場合があります。

継承を設定する手順を見逃していませんか? 継承されたオブジェクトを保存する特定の方法はありますか? 私は何を間違っていますか?基本的な問題は、 が必要だということだとAddToEmployer思いますが、それを公開するにはどうすればよいですか? クライアント側で Employer タイプを確認でき、次のようなことができるため、オプションではないのは奇妙に思えます。

var NewEmployer = new Employer()- これは、Employer タイプが正常に表示されることを示唆しているようです。

0 投票する
1 に答える
1947 参照

rest - エンティティへの LINQ による追加と更新

私たちのプロジェクトでは L2E と REST を使用しています。問題なくデータベースからデータを取得できましたが、データベースの新しいレコードを更新または追加することはまだできません。これは構文の問題だと思います (linq はまだ初心者です) が、まだ解明できていません。最初に dataservicecontext にデータをロードし、更新が行われるとCurrencyManager.Currentバインディング ソースの に保存されます。ただし、呼び出しSaveChangesてもデータベースで何も変更されず、その理由がわかりません。

例えば、

データのロード:

データの保存:

メモリ内のエンティティの更新されたコピーが追跡されていることを確認したので、 を呼び出す必要はありませんがAddObject、エラーが発生します ("閉じた型の Lynxphere.WindowsClient.LynxphereDataServices.Customers には、対応する Customers の設定テーブルがありません。 property. ") を呼び出そうとするとAddLink. そして、このステップが必要かどうかさえわかりません。助けていただければ幸いです。

0 投票する
9 に答える
14109 参照

wpf - ユーザーのWPF TreeViewのクリックをキャンセルするにはどうすればよいですか?

Treeview コントロールを備えた WPF アプリケーションがあります。

ユーザーがツリー上のノードをクリックすると、ページ上の他の TextBox、ComboBox などのコントロールに適切な値が設定されます。

その後、ユーザーはこれらの値を変更し、[保存] ボタンをクリックして変更を保存できます。

ただし、ユーザーが変更を保存せずに別の Treeview ノードを選択した場合、警告とその選択をキャンセルする機会を表示したいと考えています。

MessageBox: 続行して未保存の変更を破棄しますか? OK/キャンセル http://img522.imageshack.us/img522/2897/discardsj3.gif

XAML...

ビジュアルベーシック...

これらの選択解除/選択イベントをキャンセルするにはどうすればよいですか?


更新: フォローアップの質問をしました...
MessageBox 確認で PreviewMouseDown イベントを適切に処理するにはどうすればよいですか?

0 投票する
1 に答える
4087 参照

wpf - MessageBox 確認で PreviewMouseDown イベントを適切に処理するにはどうすればよいですか?

前に、WPF TreeViewItem.Selected イベントをキャンセルする方法を尋ねました。

回答者は、代わりに、選択が行われる前に PreviewMouseDown イベントを処理することを提案しました。それは理にかなっている。

私はそれをやろうとしました...

XAML...

ビジュアルベーシック...

これは一種の作業です...

  • 保存されていない変更がない場合は、問題なく続行され、TreeViewThings_Selected() が実行されます。

保存されていない変更がある場合、MessageBox が表示されます...

MessageBox: 続行して未保存の変更を破棄しますか? OK/キャンセル http://img25.imageshack.us/img25/141/discard2yk0.gif

  • 次にキャンセルを選択すると、キャンセルされます。

  • ただし、代わりに [OK] を選択して未保存の変更を破棄すると、e.Handled = False であってもキャンセルされます。続行して TreeViewThings_Selected() を実行しません。

MessageBox があるという事実は、どういうわけかそれを台無しにすると思います。

私は何を間違っていますか?

0 投票する
2 に答える
30496 参照

c# - EntityFrameworkでトランザクションをロールバックする方法

または、これは自動的に行われる可能性があります。つまり、エラーが発生した場合、変更のコミットはすべての変更に対してキャンセルされます。それは...ですか?

0 投票する
1 に答える
254 参照

entity-framework - ポストバックで値が失われるオブジェクトにフォームをデータバインドする方法

私は ADO.NET Entity-Framework を使用しています。コード ファイル内のエンティティ変数にデータ バインドされたページがあります。

アイテムの階層は Person.Orders です ユーザーがこの Person エンティティ (Person.Orders.Add(order)) に注文を追加/削除するようにしたいのですが、問題は、エンティティがまだ保存されていないときに、ユーザーがポストバックすると、変数が破棄され、人物とそのすべての注文がなくなります。キャッシュ/メモリ/状態などにエンティティ/変数(複雑なもの)を保存する際の良い方法は何ですか(ストアに保存しないでください。ユーザーが一般的な[変更を受け入れる]ボタンをクリックしたときにのみストアにアイテムを保存したいのですが、その間)オンエアでヒエラルキーを構築したい)?

明確でない場合は、明日詳細をお知らせします。申し訳ありません。

0 投票する
2 に答える
6882 参照

wpf - WPF でのシステム シャットダウンの処理

WPFでWndProcをオーバーライドするにはどうすればよいですか? ウィンドウを閉じるときに、使用しているファイルが変更されているかどうかを確認しようとします。変更されている場合は、ユーザーに「変更を保存しますか?」と尋ねなければなりません。ただし、ウィンドウがまだ開いているときにユーザーが再起動/シャットダウン/ログオフした場合は処理できません.WPFを使用して開発しているため、WndProcをオーバーライドできません.これも使用してみましたサンプル MSDN コード.これは私が行ったことです。

XAMLファイルでも使用しましClosing = "OnWindowClose"たが、はい/いいえをクリックしても何も起こらず、アプリケーションが閉じません。閉じるボタンを使用して再度閉じようとすると、エラーが発生しますか? これはなぜですか?フックのせいですか??WPFでこれに相当するものは何ですか?

0 投票する
2 に答える
4447 参照

entity-framework - 非同期ObjectContext.SaveChanges()?

SaveChanges(Winアプリ)の(Winアプリ)に変更を非同期で保存してもらいたいのですObjectContextが、ユーザーが作業を続けている間、ユーザーにマーキー(または制御可能?)のプログレスバー(これは簡単に実装できます)を表示します。

SaveChanges基本的にのをオーバーライドしたいObjectContext

誰かがこれについて以前に考えたことがありますか?

0 投票する
1 に答える
2429 参照

c# - c#オブジェクトコンテキストに新しいオブジェクトを追加すると、「エントリの更新中にエラーが発生しました」が返され、主キーの重複エントリ

Entity Framework のオブジェクト コンテキストにオブジェクトを追加しようとすると問題が発生します。

コードは次のとおりです。

SaveChanges() で、キー 'PRIMARY' に重複するエントリ '0' があることを示す UpdateException を受け取ります。「Composantes」に id=0 のオブジェクトが既にあることは事実です。それを削除すると、ID=0 のオブジェクトを少なくとも 1 つ作成できます。私が理解できないのは、新しいオブジェクトがコンテキストに追加されたときに、次に利用可能な ID を取得しないのはなぜですか???? これは、新しいコンテキストでこのオブジェクトを作成しようとする前に発生していたエラーとまったく同じです..これは、私の model.edmx にパラメーターが見つからないためでしょうか? 新しく作成されたオブジェクトに新しいIDの帰属を強制する方法はありますか?

Devart dot.connector を使用してエンティティ フレームワーク モデルを使用して mysql データベースに接続し、データベースに接続しています。この単純な質問に回答してくださったすべての皆様に、事前に感謝いたします。

ピエール