如何将组件属性映射为实体主键的一部分?



如何使用流利的nhibernate?

例如:

CompositeId().KeyProperty(x => x.Store.StoreCodeId).KeyProperty(x => x.CashRegister);
Component(x => x.Store, m =>
                {
                    m.Map(y => y.StoreCodeId);
                    m.Map(y => y.StoreName);
                }
            );

这还可以吗?

可以多映射一次。我们必须确保的是,组合物不会生成插入和更新语句两次。如果将映射扩展为以这种方式工作。

CompositeId().KeyProperty(x => x.Store.StoreCodeId).KeyProperty(x => x.CashRegister);
Component(x => x.Store, m =>
  {
    m.Map(y => y.StoreCodeId).Not.Insert().Not.Update();
    m.Map(y => y.StoreName);
  }
);

在某些情况下,可以从列更改为公式进行映射,这也主要用于选择和排序。

CompositeId().KeyProperty(x => x.Store.StoreCodeId).KeyProperty(x => x.CashRegister);
Component(x => x.Store, m =>
  {
    m.Map(y => y.StoreCodeId).Formula("[StoreCodeId]").Not.Insert().Not.Update();
    m.Map(y => y.StoreName);
  }
);

最后流利将生成此xml

<component name="Store" >
  <property name="StoreCodeId" formula="[StoreCodeId]" insert="false" update="false" />
  <property name="StoreName" />
</component>

相关内容

  • 没有找到相关文章

最新更新