我创建了一个C#应用程序,使用NHibernate选择并插入数据库设计工作室中创建并使用管理的Server数据库。
我的问题是,当我在多个工作站上运行应用程序时,数据库对于多个事务是不安全的,就像它不是“线程安全”一样,不知道如何调用这个问题。
使我的数据库免受多个事务影响的最简单方法是什么?我尝试将“限制访问”设置为SINGLE_USER模式,但这会将数据库锁定为连接到它的第一个应用程序,从而使所有其他应用程序都失败。
在中,我只创建表。我不选择、插入或更新数据库。所有这些都是从应用程序中完成的。
我希望我提供的这些信息足以帮助我。否则,我会发布更多:)
编辑
发现NHibernate使用SessionFactory,所以所有事务都是安全的:)
发布于 2012-05-21 09:21:59
在查询、添加和修改记录时是否使用实际事务?
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
}默认隔离应该限制为读取已提交,因此查询不应返回尚未完全提交的任何修改。
https://stackoverflow.com/questions/10682454
复制相似问题