我有以下类地图:
public UsersMap()
{
Table("Users");
Id(x => x.Id);
Map(x => x.Name);
Map(x => x.XmlData).CustomType("StringClob").CustomSqlType("text");
Map(x => x.Performance).CustomType<int>();
HasMany(x => x.Roles)
.KeyColumn("UserId")
.Inverse()
.Cascade
.AllDeleteOrphan(); ///it has other properties that are mapped...
当我尝试修改用户实体(通过更改其某些属性)并提交事务时,实体存储在数据库中并且一切正常。
现在我懒得加载'XmlData'属性,因为它太大了,我不需要每次都加载它,所以我将这个属性标记为延迟加载:
Map(x => x.XmlData).CustomType("StringClob").CustomSqlType("text").LazyLoad();
延迟加载按预期工作,但我注意到,在更改实体并提交事务后,对它的更改不会保留。如果我从映射中删除'.LazyLoad()',一切正常,则存储更改。注意到这里是在数据库中进行的其他插入(对于不同的实体)在同一事务中工作并且它们有效,除了此更新不存在。
您对正在发生的事情有一些想法吗?
我正在使用NHibernate 3.3.3.400和SQLServer 2008。