[英]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.