asp.net coreを最近始めた者です。
よろしくお願いいたします。
実現したいこと
現在、asp.net coreで作成しているソフトでSQLServerのデータテーブルを参照しています。
ユーザーがデータテーブルを変更した場合、ほかのユーザーに対しても変更が自動的に適用になるようにしたいです。
試したこと
検索したところ、以下のリンクが見つかりました。
参照
そこから、SqlDependencyが使えそうだと思いマイクロソフトのホームページ等で以下のソースコードを試したました。
C#
1void Initialization() 2{ 3 // Create a dependency connection. 4 SqlDependency.Start(connectionString, queueName); 5} 6 7void SomeMethod() 8{ 9 // Assume connection is an open SqlConnection. 10 11 // Create a new SqlCommand object. 12 using (SqlCommand command=new SqlCommand( 13 "SELECT ShipperID, CompanyName, Phone FROM dbo.Shippers", 14 connection)) 15 { 16 17 // Create a dependency and associate it with the SqlCommand. 18 SqlDependency dependency=new SqlDependency(command); 19 // Maintain the reference in a class member. 20 21 // Subscribe to the SqlDependency event. 22 dependency.OnChange+=new 23 OnChangeEventHandler(OnDependencyChange); 24 25 // Execute the command. 26 using (SqlDataReader reader = command.ExecuteReader()) 27 { 28 // Process the DataReader. 29 } 30 } 31} 32 33// Handler method 34void OnDependencyChange(object sender, 35 SqlNotificationEventArgs e ) 36{ 37 // Handle the event (for example, invalidate this cache entry). 38} 39 40void Termination() 41{ 42 // Release the dependency. 43 SqlDependency.Stop(connectionString, queueName); 44}
ただ、 SqlDependency.Start(connectionString, queueName);
のStartが認識せず、さらに調べると、asp.net coreではサポートされていないようでした。
しりたいこと
データベース上の変更があった場合に、知れる仕組みが知りたいです。
説明が不十分な箇所が多々あるとは思いますが、よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー