我发现我们使用NHibernate的API(ServiceStack)存在问题,问题是,如果我在2个不同的设备上同时执行操作,应用程序认为两者都很好...其中的操作正在兑换代码。
在代码中我们有一个Refresh()
方法,询问NHibernate代码是否有平衡,但我假设这个请求是某种缓存的,因为在两种情况下代码都返回它可以兑换代码,甚至但是,第一个设备阻止短代码再次兑换全部金额。
防止此类事情的最佳方法是什么?手动查询表,以防止缓存为:
var result = myNhSession
.CreateSQLQuery("select balance from TBL_CODES where code = 'abcd'")
.UniqueResult();
因为它已连接到会话,结果是否会返回缓存版本?
你们如何使用NHibernate阻止这种行为?