![]() |
1
2
你需要跑步
使用flushMode.auto,会话将在执行条件之前自动刷新。 编辑:很重要!在读取所显示的代码时,它看起来不像是在为工作单元使用事务。我建议在事务中包装您的工作单元-这是FlushMode所必需的。如果您使用NH2.0+,则自动工作! 请在此处进一步阅读: NHibernate ISession Flush: Where and when to use it, and why? |
![]() |
2
0
如果希望每次检查时新标记都在数据库中,则需要在保存后提交事务以将其放在数据库中。 另一种方法是在处理照片之前将标签读取到集合中。 然后就像你说的那样,你会在本地搜索并根据需要添加新的标签。完成文件夹后,可以提交会话。 你应该张贴你的映射,因为我可能没有正确地解释你的问题。 |
![]() |
3
0
这就是典型的“锁定不存在的东西”问题。我已经面对过好几次了,仍然没有一个简单的解决办法。 这是迄今为止我知道的选项:
例子:
这看起来很简单,但有一些问题。您总是会得到一个标签,它要么是现有的,要么是已创建的(并立即提交)。但是您得到的标签来自另一个会话,因此它是为您的主会话分离的。您需要使用级联(您可能不想)或更新将其附加到会话。 创建标记不再与您的主事务耦合,这是目标,但也意味着回滚您的事务会在数据库中留下所有创建的标记。换句话说:创建标记不再是事务的一部分。 |
![]() |
A B · C#Excel自动调整列避免长文本时出错 5 月前 |
![]() |
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 5 月前 |
![]() |
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 5 月前 |
|
Sei · Avalonia/WPF将路由器传递到控制模板 5 月前 |