問題タブ [datacontext]
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.
wpf - DataContext を使用した DataBinding
ここで何が間違っていますか?次のように、オブジェクトDataTemplate
内でコレクションを使用して作成しようとしています。DataContext
C#:
XAML:
から継承するクラスを使用することで、これをはるかに簡単に実行できましCollection<T>
たが、多くの理由から、この問題を解決するためにそれを行うことはできません。どんな提案でも大歓迎です。
ありがとう!
c# - MyDataContext.dbml の下の .cs ファイルは何のためにありますか?
MyDataContext.dbml の下にある個々の (現在は空の) ファイルは何のためのものですか?
ディレクトリ構造:
c# - C#: Linq2SQL エンティティがデータベースにあるかどうかを確認する方法
エンティティがデータベースに既に追加されているかどうかを確認したいと思います。では、この と の違いをどのように確認できa
ますb
か?
明確にするために、これがある場合:
thing
挿入する必要があるかどうかを確認するにはどうすればよいですか?
c# - Web アプリケーションの LinqToSql 静的 DataContext
私が遭遇した Web アプリケーションでは、LinqToSQL を処理するときに DataContext を処理する次のコードを見つけました。
次に、後でこれを参照してください:
LinqToSQL を扱う際のベスト プラクティスを調べてきました。
DataContext が ThreadSafe ではなく、その静的コピーを保持している場合に、これが取ったアプローチについてはわかりません。
これは、Web アプリケーションを取り入れるのに適したアプローチですか?
@ Longhorn213 - あなたが言ったことと、そのために HttpContext を読んだことに基づいて、あなたは正しいと思います。しかし、私が継承したアプリケーションでは、各メソッドの開始時にデータベースを再クエリして情報を取得し、データコンテキストのそのインスタンスを変更して変更を送信しているため、これは混乱しています。
このことから、データコンテキストが静的であり、リクエスト間で持続するという誤った印象を与えているため、このメソッドはお勧めできません。将来の開発者が、データが既に存在すると考えているためにメソッドの先頭でデータを再クエリすると考えた場合、問題が発生し、その理由がわからなくなる可能性があります。
だから私の質問は、この方法は将来の開発で思いとどまるべきですか?
c# - DataContext から MarkupExtension への値を取得する
MV-VMパターンを使用しています
私のVMには次のようなコードがあります
上記のドキュメントを使用したいマークアップ拡張機能があります
添付プロパティ Foo.Document を作成し、それをページに添付しました (ページの DataContext は ViewModel クラスのインスタンスに設定されます)。
(マークアップ拡張機能を使用するたびにパラメーターとして入力する必要がないようにするため)
現在、マークアップ拡張機能で Document 添付プロパティを読み取ろうとすると、常に null ドキュメントが取得されます。バインドをデバッグすると、マークアップ拡張機能の実行後に添付プロパティが適切な値を取得するタイミングの問題のように見えます。
これを何らかの形で機能させることは可能ですか?
stored-procedures - 削除された行は、再度初期化しない限り、データコンテキストに残ります
myDataContextというデータコンテキストがあります。いくつかのクラス(テーブル)とストアドプロシージャがあり、そのうちの1つはデータベースから直接削除されます(ロジックではこれが必要です)が、削除された行は、再度初期化しない限りmyDataContextに残ります。
これを回避する方法はありますか?ストアドプロシージャはデータベースからレコードを正常に削除しますが、次にフォームを開くまで、レコードはまだそこにあります。
c# - DbLinq - キャッシュの問題
ASP.NET MVC Web サイトで (DbLinq を使用して) MySql の linq to sql を使用しています。奇妙なキャッシングの問題があります。私の Repository クラスで次のメソッドを検討してください。
「MyDataContext」は、DbLinq によって生成されたデータベースへのマッピングであり、DataContext から継承されます。ここではデータコンテキストを再利用していません (上記のコードは少しばかげているように見えますが、データコンテキストや mysqlconnection の再利用の問題ではないことを確認したかったのです)。
2 つのメソッドのどちらを呼び出しても、userId が何であれ、結果は同じままです。限目。さまざまなと の値repo.Messages
を使用して 10 を超える結果があることがわかりますが、最初にクエリを実行した結果しか返されません。したがって、呼び出すと、メッセージ A とメッセージ B が返されます。後で呼び出すと、userId が 526 のメッセージ C と Dがあるにもかかわらず、メッセージ A と B が返されます。変更を確認するには、アプリケーションを再起動する必要があります。MessageFrom
MessageTo
GetInbox(4374)
GetInbox(526)
何が起きてる?きっと誰かに指摘されたら恥ずかしくなるようなバカなことをしているに違いない。私が非常にばかげたことをしていない場合、この問題は非常に奇妙だと思います。DataContext を再利用しないことについて読みましたが、そうではありません。このキャッシュの問題はなぜですか? 以下は私のコントローラコードですが、それが問題になるとは思えません:
SO にも同様の質問がありますが、この正確な質問に対する答えは見つかりませんでした。どうもありがとう!
更新: コードを次のように変更します:return repo.Messages.ToList().Where(m => m.MessageFrom == userId);
修正すると、問題なく動作します。キャッシュの問題のようです。ただし、もちろん、そのように修正したくはありません。クエリの後にデータ コンテキストが破棄されないようにコードを変更しても、問題は解決されません。
linq - Linqを使用してDB接続エラーを検出しますか?
Linq を使用してアプリケーションの「トランスポート レベル エラー」が発生する前に、接続のエラーを検出することは可能ですか?
SQLServer1 という SQL サーバーがあり、LinQ を使用してそのサーバーに接続して情報を取得するアプリケーションを実行しているとします。
サーバー名を SQLServer2 に変更することにしました。次にアプリケーションを実行すると、次のようなエラーが表示されます。
"サーバーから結果を受信中にトランスポート レベルのエラーが発生しました。 (プロバイダー: TCP プロバイダー、エラー: 0 - 指定されたネットワーク名は利用できません。) "
LinQ は変更があったことを知らないからです!
実行時にこれをキャッチするにはどうすればよいですか? DataContext クラスを拡張して、データを取得する前に何らかの方法で接続を確認することは可能ですか?
ありがとう!
asp.net-mvc - 1 つのアクションだけで DataContext が null になるのはなぜですか?
BaseController に、LINQ to SQL データ コンテキスト (またはテスト用の偽のコンテキスト) を保持する DataContext というプロパティがあります。パラメーターなしのコンストラクターを使用する場合 (つまり、ASP.NET MVC への要求が行われる場合)、LINQ to SQL データ コンテキストの新しいインスタンスがプロパティに割り当てられます。
また、BaseController で、いくつかのグローバル ViewData 項目を設定しました。
これは、ほとんどすべてのアクションでうまく機能しています。機能しない唯一のものは、私の AccountController の Logout アクションです。
これにより、BaseController.OnActionExecuting 中に NullReferenceException が発生します。その特定のアクションを実行すると、DataContext プロパティは null になります。
これが 1 つのアクションでのみ発生するのはなぜですか?
注: IDataContextWrapper と DataContextWrapper は、LINQ to SQL DataContext オブジェクトの既存の機能をラップするだけなので、単体テストで偽のコンテキストに置き換えることができます。独自に破棄することはありませんが、基礎となる DataContext に任せているので、それは問題ではないと確信しています。
wpf - WPF Datagrid の Datacontext への再バインド
このかなり単純なことに困惑しているとは信じられません。私はもともとこれを WPF データグリッド コードプレックス ディスカッションに投稿しましたが、応答がありませんでした。だから私はここで試しています:
これを行う方法が見つからないようです。データコンテキストが最初にテーブルの行で満たされているデータグリッドを作成します。条件に基づいていくつかの行を返す検索機能を実装しました。これらの行のみを表示したい場合、最初に作成されたデータ コンテキストを破棄し、新しくフィルター処理されたコレクションを追加するにはどうすればよいでしょうか?
私は素朴に次のように始めました:
(Late Edit: ここに Generics コードを入力できないようです -- 次の行のキャストは、datagrid.Items を MyType にキャストするためにサポートされています (たとえば))
IEnumerable 行 = datagrid.Items.Cast();
IEnumerablefilteredRows = 行.Where(行 => 行.someCondition == true);
データグリッドにfilteredRowsのみを表示させるにはどうすればよいですか? ただやっている:
datagrid.DataContext = null;
datagrid.DataContext =filteredRows;
動作しません(何らかの理由で愚かなにおいさえします)。
また、逆のことを行う必要があります(これが機能したら)。一部のボタンクリックにより、ユーザーは検索結果を「クリア」し、DataContext を「行」に再プラグインできるようにする必要があります (上記のスニペット)。
私は何が欠けていますか?