私は一時的なテーブルをnhibernateとともに使用しようとしています。一時テーブルがnhibernateで動作しないのはなぜですか?
次のコードは、
query = @"CREATE TABLE [#Dataset_x]
([Name] [nvarchar](max) NULL,
[Value] [nvarchar](max) NULL)";
Session.CreateSQLQuery(query).SetTimeout(uploadExecQueryTimeout).ExecuteUpdate();
query = @"INSERT INTO [#Dataset_x] ([Name],[Value]) VALUES('Dataset','MyDataset')";
Session.CreateSQLQuery(query).SetTimeout(uploadExecQueryTimeout).ExecuteUpdate();
を動作しません。そして、私は2番目のクエリを(実行しようとすると、私は2番目に呼び出される前に作成された一時表の期限が切れたので、私は、オブジェクトの無効なエラーが出ますクエリ)。
ただし、以下のようなトランザクションで上記のコードを追加しても問題ありません。
using (var transaction = Session.BeginTransaction())
{
query = @"CREATE TABLE [#Dataset_x]
([Name] [nvarchar](max) NULL,
[Value] [nvarchar](max) NULL)";
Session.CreateSQLQuery(query).SetTimeout(uploadExecQueryTimeout).ExecuteUpdate();
query = @"INSERT INTO [#Dataset_x] ([Name],[Value]) VALUES('Dataset','MyDataset')";
Session.CreateSQLQuery(query).SetTimeout(uploadExecQueryTimeout).ExecuteUpdate();
transaction.Commit();
}
取引はNHibernateの中で一時テーブルを使用する必要があり、なぜ誰も私を提案することはできますか?
注:「current_session_context_class」値私は私の設定で使用NHibernateのではデフォルトでコール