問題タブ [submitchanges]
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# - LinQ DataContext - SubmitChanges の呼び出し中は操作を実行できません
例外をスローするコードは非常に簡単です。これは非常に通常の挿入であり、次のような変更ステートメントを送信します。
本当に特別なことは何もありません。このステートメントは、1 日に約 5 万回実行されても問題ありませんが、1 日に約 6 ~ 10 回は次のように終了します。
SubmitChanges の呼び出し中は操作を実行できません。
私はそれが何であるかを見つけようとしていましたが、手がかりを見つけることができません.この動作は非常に決定論的ではありません.
DataContext
最初に静的なものとして初期化され、次にすべての呼び出しで再利用されたので、それが問題かもしれないと考えていました。次に、すべての呼び出しで初期化されるように変更しましたが、結果は非常に似ています。1 日に数回の例外がまだあります。
何か案が?
いくつかの追加: 関数は次のようになります:
単純なレコードの初期化と挿入です。
私がコメントに書いたように、Ado.NetとSqlCommandで同じことをしている間、この問題は発生していません...
だから私の好奇心は私に理由を考えさせますか?
vb.net - LINQtoSQLおよびユーザー定義関数を使用したSubmitChanges
SQLサーバーでUDFを作成します。fnCompanyDetailsという名前を付けましょう。いくつかの共同テーブルから会社に関するいくつかの情報を選択します。次に、この関数をVBプロジェクトの新しい.dbmlにドラッグアンドドロップします。LINQで使いたいです。このようなSmth:
このクエリの結果をフォームでユーザーに表示します。一部のフィールドが変更された場合、データベースに変更を送信したいのですが、UDFからこのように検索している場合、これは可能ですか?ありがとう
asp.net - LINQ to SQL SubmitChanges() が機能せず、新しいレコードを挿入できない
まず、私は LINQ to SQL を初めて使用するので、これはおそらくばかげた質問ですが、データベースに新しいレコードを挿入しようとすると、次のエラーが発生し続けます。
コードをステップ実行して、期待どおりにすべてのデータが存在することを確認できますが、
以下の方法でエラーが発生します。私は何を間違っていますか?これは非常にイライラすることであり、LINQ to SQL を理解するのに 1 日を費やしてしまいました... それを袋に入れて、ADO.NET とストアド プロシージャの使用に戻りたいと思っています。
私の app.config には、次の接続文字列があります。
私はまだ開発マシンにいるので、これは正しい接続文字列です。
c# - SubmitChanges はすべてのフィールドを where 句として内部的に追加します。それを取り除く方法
私は主キーが言うデータベースにテーブルを持っていますemp_pk
。現在LINQを使用して、いくつかの操作を実行しようとしています。いくつかのプロパティを変更して呼び出すと、
理想的には、where 句に が含まれている必要がありますwhere emp_pk = value
。
しかし、SQL プロファイラーからクエリを確認すると、WHERE 句に多くの条件が表示されます。これは、LINQ エンジンによって生成されたと思われます。これにより、重大なパフォーマンスの問題が発生しています。
この場合、クエリを最適化するために誰か助けてもらえますか?
silverlight - 2つの別々のDomainDataSourceを使用したSilverlightDomainContextの読み込み
DataContextに関して混乱があり、誰かに確認またはコメントしてもらいたいのですが。
平易な英語では、DataContextは、ロード時にエンティティで埋めることができるコンテナであると思います。
たとえば、とという名前の2つのエンティティがCustomers
ありOrders
ます。新しいDomainContextを宣言します
私はこのようにロードCustomers
しますDomainDataSource
:
同じドメインコンテキストを使用して注文をロードすると、
変更を送信した後ctx.SubmitChanges()
、DomainContextはサーバーに戻り、CustomersとOrdersの両方を含むすべての変更をサーバーにコミットしますか?これらの両方のエンティティに新しいレコードが追加され、既存のレコードが編集されましたか?
私はSilverlightを初めて使用し、DataContextがどのように機能するかについてしっかりとした概念を求めていました。ホワイトペーパーを確認しましたが、探していた答えが見つからない可能性があります。
c# - RIA サービスの SubmitChanges での AutoIncrement
Silverlight 5 の Entity Framework で RIA サービスを使用しています。次のFoo
表があります。
Fooid
FooName
FooCode
FooRef
Fooid
自動インクリメント番号 - 保存時にチャームのように機能します...
FooName
ViewModel で設定されます - 保存時に正常に動作します...
FooCode
GRN、SIP、XYZ などの 3 文字のコードです ... これも ViewModel で設定されます。 .
FooRef
増加する整数は問題ありません。たとえば、サーバーに最後に保存された値は 100 で、次の保存は 101 になります。
この最新の番号を取得する方法について少し混乱しています。少し調べたところ、2つの方法が見つかりましたが、これらの使用方法が混乱しており、実装方法の助けが必要です。
First Method
FooRef
ViewModel から、最後に保存されたint
を提供できる RIA サービスから INVOKE を呼び出すことができます。1 ずつ追加して、SubmitChanges に値を渡すことができます。
Problem with First Method :
この方法で私が直面する問題は、異なる場所のワークステーションに 3 人のユーザーがいるとしましょう。それらはすべて newFoo
の作成を開始し、invoke メソッドを呼び出すと、すべて同じ値が与えられ、概念全体が崩壊します。
Second Method
私はどういうわけかサーバー上の Add メソッドをインターセプトし、リポジトリ経由である可能性があり、FooRef
このエンティティを追加して変更を送信する直前の値を取得します。
誰でも助けることができますか?
sql - LINQ to SQL 接続を閉じた後に変更を送信するにはどうすればよいですか?
LINQ を使用してデータベースにアクセスし、レコードを変更しています。次のようにレコードを取得します。
アイテムを取得した後、各アイテムを処理します。これには Web サービスとの通信が必要で、レコードごとに 1 分以上かかる場合があります。レコードが更新されたら、変更を送信する必要がありますが、どのように進めればよいかわかりません。現在、私は次のことを行っています。
...
db.SubmitChanges()
変更を送信しませんが、オブジェクト「送信」が変更を保持するように実際に設定していません。ファイルが一度に 1 つずつ処理される間、Db 接続を数分間開いたままにせずに、エントリに加えられた変更を送信するにはどうすればよいですか?
よろしくお願いいたします。
一部解決済み
これが最善の解決策だとは思いませんが、コードに次の変更を加えることで動作させることができました。
jquery - ぼかした後ではなく、jqueryの入力中に確認してください
おそらく簡単に修正できる小さな問題がありますが、まだそれほど上手ではありません。私はこの簡単なコードを書きました
電子メールがフォームで有効かどうかをチェックし、有効な場合は [送信] ボタンを有効にします。問題は、入力中ではなく、他の場所をクリックした後に電子メールを検証することです。つまり、基本的にはメール フィールドの外側のどこかをクリックする必要があり、それから [送信] をクリックできます。適切な電子メールを入力し、このフィールド以外の場所をクリックしないと、SUBMIT のロックが解除されません。ここで何を変更すればよいですか?何か案は?すべての回答に感謝します。前もって感謝します。
c# - DataContext の更新とロールバック
DataContext に問題があります。次のコード スニペットでは、最初にデータ コンテキスト内の既存のオブジェクトを削除し、後で同じコード内に新しいオブジェクトを追加します。問題は、.DeleteOnSubmit() を使用しているため、Datacontext に 2 つのエンティティがまだ含まれているため、データベースに正しく保存されていることです。
ここにコード:
前に削除の SubmitChanges() を行わない場合
次に、私の Datacontext には 2 つのエンティティが含まれ、変更のたびに GUI に重複が表示されます。
私が以下を使用する場合:
1.既存のオブジェクトを削除する 2.submitChanges 3.新しいオブジェクトを追加する 4.submitChanges
しかし、ポイント 2 と 3 の間で何かが失敗すると、削除されたオブジェクトは失われます。助言がありますか?コンテキストを維持して、二重エンティティでハングしないようにし、何か問題が発生した場合でもロールバック機能を処理するにはどうすればよいですか?
c# - DataContext.Submit および TransactionScope
以下の疑似コードを説明してください。
私の考えは次のとおりです。3番目のSubmitChangesはo.Statusをコミットし、o.TransactionIdをコミットしません。オブジェクトはデータベースで破損します(つまり、一貫性がなくなります)。
私の場合の「ベストプラクティス」はありますか?