我是流利的nhibernate(也是hibernate)的新手。我使用LLBLGEN生成了我的nhibernate代码。现在,从我在教程中看到的,LLBLGEN生成的代码不是很好,所以我有点怀疑并决定检查输出。
在将属性映射到列之前,每个映射文件在其构造函数中都有以下行:
Table("TABLE_NAME");
OptimisticLock.None();
LazyLoad();
我了解Table
方法,但其他方法呢?他们真的有必要吗?
答案 0 :(得分:1)
请将我的答案作为互联网上现有文献的一个推论,因为我不是NHibernate的专家。
LazyLoad();
句。无论您如何在项目中定义默认延迟加载策略,LazyLoad();
句forces NHibernate在执行映射时实现延迟加载。
OptimisticLock.None();
句。从Ayende的相关帖子到NHibernate mapping concurrence:
None基本上意味着我们回退到事务语义 我们在数据库中使用。数据库可能会把我们抛弃,但除此之外 从那以后,我们并不在乎事情。
并查看Hibernate project documentation
如果启用动态更新,您可以选择乐观锁定策略:
- 版本:检查版本/时间戳列
- all:检查所有列
- dirty:检查更改的列,允许一些并发更新
- none:不要使用乐观锁定
我假设在代码上使用OptimisticLock.None();
句子告诉NHibernate没有建立任何锁定策略并将锁定行为推迟到底层数据库。