我有一个集合映射为Ayende's example之后的仅查询属性。我的映射是:
HasMany<Employee>(Reveal.Member<Company>("_employees")).Access.None();
这工作正常,除非我加载公司外键Employee.CompanyId更新为null。即使我没有更新公司并且生成的SQL仅在更新列表中包含CompanyId,即使我没有映射Employee来仅更新已更改的属性,也会发生这种情况。
我尝试使用NoOp
(我认为他们是我的同义词)并将员工集合声明为公共财产而非私有字段。我终于能够通过将映射更改为:
的hasMany(Reveal.Member( “_雇员”))Access.None()Not.KeyUpdate();
KeyUpdate的目的是什么?等效的XML映射是什么?为什么仅查询属性需要它?我的假设是,设置对none或noop的访问可以防止任何更改。
答案 0 :(得分:1)
杰米
如果您仍然感兴趣,可以从AutoPersistenceModel生成hbms并查看xml。就像
一样model.CompileMappings();
model.WriteMappingsTo(outputDir);
顺便说一下,你有没看过@ ConfOrm。我怀疑这会在开发时获得更多的牵引力,但还没有花太多时间用它。
HTH,
Berryl