0
私たちには、各クライアントが独自のdb(現時点では約700)を持つwebappがあります。多くのデータベースとの接続
SubSonic 2では、適切な接続文字列を使用してSharedDBConnectionScope
を渡して各呼び出しをラップする必要がありました。そうでないと、スレッドまたはクライアントが別のスレッドまたはクライアントからデータを取得するリスクがありました。
これはまだ必要ですか?私は2.xのようにコールをラップする必要がありますか?
データベースを簡単に切り替える方法はありますが、依然としてスレッドの問題がありますか、SharedDBConnectionScope
への呼び出しを廃止できますか?
いくつかの例:
// Linq Templates:
var db = new YourDB("connectionstring goes here", "System.Data.SqlClient");
// SimpleRepository without app.config
IDataProvider provider = SubSonic.DataProviders.ProviderFactory.GetProvider(
connectionString: "Server=localhost;Database=clientdb;Uid=root;",
providerName: "MySql.Data.MySqlClient"
);
IRepository repository = new SimpleRepository(provider,
SimpleRepositoryOptions.RunMigrations);
だから、基本的には、プロバイダを作成したりするたびにリポジトリでき
私はそれを理解しています。私は、IQuerySurface(あなたの例ではYourDB)を作成するときに接続文字列を設定しています。しかし、2.xではスレッディング問題が発生しますが、SharedDBConnectionScopeを使用しない限り、クライアントaは臨床検査bのデータを参照します。私はちょうど同じスレッドの問題が存在するかどうか、またはプロバイダがどのように作成されたかについての変更を行うことでそれが解決されるかどうか疑問に思っています。 – JayGlynn