問題タブ [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.
c# - C#、LINQ バッチ項目 - これを行う最善の方法は何ですか?
(1) フィード、(2) プロダクションの 2 つのデータベースがあります。フィード データベースは、毎日取得するクライアント ファイルからフィードされ、私の観点からは、読み取り専用のデータ ソースです。フィード ファイルが受信されると、フィード アプリはその処理を実行し、最終的に運用サイトで Web サービスを呼び出します。次に、この Web サービスは、フィード DB と Prod DB の間で同期を行います。本質的に、これは擬似コードです:
- クライアントのすべてのフィード アイテムを取得する
- 同じクライアントのすべての製品アイテムを取得する
- LINQ for Objects を使用して、(1) UPDATE の原因となるすべてのアイテム、(2) DELETE の原因となるすべてのアイテム、(3) INSERT の原因となるすべてのアイテムを取得します。
- プロセスの更新
- プロセスの削除
- プロセスインサート
INSERTS、UPDATES、および DELETES を分離するコア コードの場合:
はい、これを行うためのより効率的な方法があることを知っており、それらを使い始めています。ただし、上記のコードは比較的高速に動作し、データを 3 つの List<> セットに分割します。
私の質問は、_dbRiv.SaveChanges() メソッドの処理に関するものです。私がそれを発行すると、3 つのセット (上記) がすべて起動するように見えます。一意のキー違反を追跡しようとしていますが、これをバッチで使用すると、制約に違反している 1 つまたは 2 つのレコードが見つかりません。LINQ for SQL が実際にどのように機能するかについて、私の考えのどこかで何かを見逃していたと確信しています。
私がやりたいことは次のとおりです。
- UPDATES だけで保存を実行します。それから他のことをして、
- DELETE だけに保存を実行します。それから他のことをして、
- INSERTS で (今のところ) 1 つずつ保存を実行します。
一度に 1 つのバッチで SaveChanges を発行する方法はありますか?
InsertProductList オブジェクトを foreach して、一度に 1 行ずつ SaveChanges を実行する方法はありますか? 私は間違った木を吠えていますか?
編集: EF からストアド プロシージャを呼び出すことができることはわかっていますが、私の意図は、ストアド プロシージャを EF に変換する方法を学ぶことです。
私は SQL で必要なものを書きました。
今、Entity Frameworks を利用したコードでそれを書いています (まだ完成していません):
私はそれが今少し面倒であることを知っています。私はこれを含めているので、これをより適切にクリーンアップする方法、これを行うために EF を利用するより良い方法などについて誰か提案があれば、私はそれを感謝します。エンティティ間で結合を行う非常に洗練された方法がいくつかあることを私は知っています。
c# - WPF 3D 変換後の新しいインデックス、三角形、法線の保存
現在、平らに横たわっている 3D モデルがあり、X 軸を中心に 90 度回転させたいと考えています。変換でこれを行うのに問題はありません。しかし、私の知る限り、すべての変換は乗算された行列の束です。モデルのインデックスのすべての座標を変換で実際に変更したいと思います。変換を適用した後に「変更を保存」する方法はありますか? XamlWriter クラスを使用して、新しいジオメトリを xaml ファイルに保存できるようにしたいと考えています。古いジオメトリを保持してから変換を適用する方法ではなく、新しい座標を保存したいと考えています。
php - onunloadイベントなしでサイト内ナビゲーションに応答してデータの保存を処理するための推奨されるアプローチはありますか?
私の質問をスコープするための前文:
jQueryとAJAXを広範囲に使用してUIのコンテンツセクションをブラウザーに動的にロードするWebアプリ(またはサイト、これは内部LANサイト)があります。ユーザーは、ナビゲーションメニューを使用してアプリをナビゲートします。ナビゲーションメニューの項目をクリックすると、phpがAJAXで呼び出され、phpは中央のコンテンツセクションに入力するために使用されるコンテンツを返します。
phpによって提供されるページの1つには、ユーザーが値を入力するスプレッドシートのように設定されたテーブルフォームがあります。このテーブルは、データベース内のデータと常に同期しています。したがって、テーブルが作成されると、関連するデータベースデータが入力されますか。次に、ユーザーが「セル」に変更を加えると、その変更はすぐにデータベースに書き戻されるため、テーブルとデータベースは常に同期されます。このアプローチは、入力したデータが保存されていることをユーザーに安心させ(長い話...)、ある種の保存ボタンをクリックする必要がないようにするために採用されました。
したがって、これは常に同期するという考え方が優れています。ただし、ユーザーはセルに値を入力し、セルからフォーカスを外すのではなく、最後の値が失われる原因となるアクションをいくつでも実行できます。ナビゲーションメニューを介してサイトの別のセクション、アプリからログアウト、ブラウザを閉じるなど。
前文の終わり、問題について:
最初は、どのデータが「ダーティ」であるか、または保存されていないかを追跡するだけなので、それは問題ではないと思いました。その後、onunloadイベントで、データベースへの最終書き込みを行いました。ここに問題があります:私の賢い(またはそれほど賢くない、わからない)AJAXの使用とコンテンツセクションの動的な読み込みのため、上記のアクションが実行されたときに、ユーザーが実際に元のURLまたはページを離れることはありません。ブラウザを閉じます。したがって、onunloadイベントは発生せず、最後のデータが再び失われます。
私の質問ですが、コンテンツがこのように動的に読み込まれるときに、人がアプリの「セクション」から離れて移動しているかどうかを把握するための推奨される方法はありますか?
グローバルと現在表示されているページの追跡を含む解決策を思いつくことはできますが、もっとエレガントな解決策があるかどうか、またはデザインに変更を加えることができるかどうかを確認すると思いました。この作品。
いつものようによろしくお願いします!
c# - Entity Framework : SaveChanges の実行を中断する
私はユニークな を持っておりObjectContext
、その上で を実行しSaveChanges()
ます。この操作には時間がかかります (~60 秒)。この操作はスレッドで実行されます。
ユーザーの画面に「キャンセル」ボタンがあります。
スレッドを停止することはできますが、スレッドSaveChanges()
が既に開始されている場合は、キャンセルする方法が見つかりません。
実際、基になるトランザクションにアクセスする方法が見つかりませんでした (分離レベルの問題もあります。この操作はデータベース内のほぼすべてのテーブルをロックするため、他のユーザーはアプリケーションを使用できません)。
基になる接続を閉じても機能しますか? EF は命令を送信できませんがRollback
、データベースはとにかくそれを実行すると思います。
使用できることは確認しましTransactionScope
たが、DTC にアクセスする必要があり、サーバー/ネットワーク構成の編集に関してホストのパフォーマンスがあまり高くありません。
したがって、「Entity Framework」ソリューションが存在する場合は、それを好むでしょう。
.net - .Net Entity objectcontext スレッド エラー
次のように、DAL から BAL にオブジェクトを返す n 層の asp.net アプリケーションがあります。
この結果はビジネス レイヤーを通過し、UI レイヤーに到達してエンド ユーザーに表示されます。アプリケーションの他のレイヤーでのクエリの実行を防ぐために、遅延読み込みは行いません。
オブジェクトを削除するために、DAL に別の関数を作成しました。
「Get」関数を呼び出した後に「Delete」を呼び出そうとすると、次のエラーが表示されます。
セッションで他のスレッドが実行されているため、新しいトランザクションは許可されません
これは ASP.Net アプリです。私の DAL にはエンティティ データ モデルが含まれています。上記の関数を含むクラスは、コンストラクターでインスタンス化された同じ _dataContext を共有します。私の推測では、リーダーは「Get」関数からまだ開いており、閉じられていません。どうすれば閉じることができますか?
私の UI レイヤーでは、結果をループして、次のように削除しようとします。
編集
エラーは次の行で発生しています。
entity-framework - Entity Framework - 初期保存が遅い
EF4 と WPF を使用してシステムを実装しています。データの最初の保存に関する問題に気付いています。最初の SaveChanges が実行されると、context.SaveChanges() コマンドが実行されるときに 4 ~ 6 秒の遅延があります。後続のすべての SaveChanges は非常に高速で、顕著な遅延はありません。これは大きな問題ではありませんが、それでも厄介な問題です。
誰かがこの問題を経験し、それを回避する方法を知っていますか?
ありがとう
asp.net-mvc-2 - 「ObjectStateManagerには、タイプのオブジェクトへの参照を持つObjectStateEntryが含まれていません。」というEntityFrameworkの永続性の問題。
私が持っているデータベースには:
この複合キーを使用して、「ServiceSchedule」アイテムの一意性を確保しています。「Previoustask」フィールドは、すべてのPKを連結したものであり、レコードからレコードに関連する詳細な「ServiceSchedule」タスクのタイムラインを作成できるという考えです。
コンテキストは次のとおりです。
2つのコントローラーの編集アクションは次のようになります。
「db.ApplyPropertyChanges」行まではすべて正常に機能しているようで、エラーが発生します。
編集ビューに渡されたモデルには、関連するテーブルのコレクションが含まれていることに気付きました(たとえば、CountryIDから離れた国のコレクション)が、モデルがビューから戻ると、「ServciceSchedule」テーブルのPK IDのみが含まれ、関連するものは含まれません。コレクション。
私は現在、このようなビューにhiddenforsを作成することでこの問題に対処しようとしていますが、それでも完全なモデルをコントローラーに戻すことができないようです。
また、GetServiceSchedulesリポジトリは次のようになります。
(VS 2008、SQL 2008、MVC2を使用)
誰かが私にいくつかのより提案された救済策を教えてもらえますか?
html - キャンバスの描画を保存するには?
私はこのフィンガー ペインティング アプリを持っています。ユーザーが描いたものを保存し、後で戻ってきて描き続けることができるようにしたいと考えています。
これを行うためのより軽い方法は何ですか?
entity-framework - Entity Framework / EF4: トランザクション スコープでの関連エンティティの複数の挿入
同様の問題があります。
同じトランザクション スコープで 2 つの挿入を行いたいです。オブジェクトは関連しており、それらの間に FK 関係がありますが、いくつかの理由から、ナビゲーション プロパティを介してそれらを接続するのではなく、ID によってのみ接続したいと考えています。
これは、私が達成したいことを単純化したものです。
問題は、FK 評価が失敗したために UpdateException が発生することです。FK 関係を削除して、まったく同じコードを実行しようとしたところ、問題なく動作し、両方のオブジェクトに適切なプロパティが設定されていました。では、なぜこのアプローチは失敗するのでしょうか? そして、これはどのように行うべきですか?繰り返しますが、ナビゲーション プロパティを介してエンティティをアタッチしたくありません。
ありがとうございました!
.net - ObjectContext.SaveChanges()は主キーに違反し、UpdateExceptionをスローしますか?
このMSDNドキュメントからの言い換え...
INSERTステートメントはEntityFrameworkによって生成され、ObjectContextでSaveChangesが呼び出されたときにデータソースで実行されます。
INSERT操作が成功すると、サーバーで生成された値がObjectStateEntryに書き戻されます。SaveChangesの実行の最後にAcceptChangesが自動的に呼び出されると、サーバーで生成された新しい値を使用して永続的なEntityKeyが計算されます。
これは私のコードでは発生していないようです。を呼び出すとObjectContext.SaveChanges()
、次の値UpdateException
がスローされます。InnerException.Message
「重複するキー値が一意性制約student_term_data_pkeyに違反しています」
問題のあるコードは次のとおりです。
StudentTermData.Id
エンティティデータモデルでEntityKeyとしてマークされていることを確認しました。誰かアイデアや提案はありますか?