簡體   English   中英

使用C#創建的NHibernate從多個應用程序向SQL Server數據庫進行事務處理

[英]Transactions to a SQL Server database from multiple application using NHibernate created with C#

我已經使用NHibernate創建了一個C#應用程序,以選擇並插入在Database Design Studio Lite中創建並由SQL Server Management Studio管理的SQL Server數據庫。

我的問題是,當我的應用程序在多個工作站上運行時,該數據庫對於多個事務並不安全,就像它不是“線程安全”的一樣,也不知道該怎么稱呼該問題。

什么是使我的數據庫免受多個事務影響的最簡單方法? 我試圖將“限制訪問”設置為SINGLE_USER模式,但這將數據庫鎖定到連接到它的第一個應用程序,並使所有其他應用程序失敗。

在SQL Server Management Studio中,我僅創建表。 我沒有選擇,插入或更新數據庫。 所有這些都是從應用程序完成的。

我希望我提供的這些信息足以幫助我。 否則我會發布更多內容

編輯

發現NHibernate使用SessionFactory,因此所有事務都是安全的:)

查詢,添加和修改記錄時,您是否正在使用實際事務?

using (var session = SessionFactory.OpenSession())
using (var tx = session.BeginTransaction())
{
   // query or submit changes to session here, calling tx.Commit() at the end if you make changes
}

默認隔離應該限制為已讀提交,因此查詢不應返回尚未完全提交的任何修改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM