Fluent NHibernate共享列的组件

Fluent NHibernate共享列的组件,nhibernate,fluent-nhibernate,components,Nhibernate,Fluent Nhibernate,Components,如何使组件在实体上多次出现,并共享组件中的一列 mapping.Component(x => x.Price1, m => { m.Map(x => x.Amount).Column("OfferPrice"); m.Map(x => x.Group).Column("CurrencyConverterRateGroupID"); }); mapping.Component(x => x.Price2

如何使组件在实体上多次出现,并共享组件中的一列

    mapping.Component(x => x.Price1, m =>
    {
        m.Map(x => x.Amount).Column("OfferPrice");
        m.Map(x => x.Group).Column("CurrencyConverterRateGroupID");
    });

    mapping.Component(x => x.Price2, m =>
    {
        m.Map(x => x.Amount).Column("OfferPrice2");
        m.Map(x => x.Group).Column("CurrencyConverterRateGroupID");
    });

插入过程中出现了这个错误,只是说like无法获取53的第53列或其他内容。当它有映射问题时,这是一个一般性错误。选择“工作正常”,但不能插入或更新。

不能在映射中两次映射同一列。您需要将
CurrencyConverterRateGroupID
从组件中拉出。

您可以映射到相同的列,但必须将其中一列设置为只读

mapping.Component(x => x.Price1, m =>
{
    m.Map(x => x.Amount).Column("OfferPrice");
    m.Map(x => x.Group).Column("CurrencyConverterRateGroupID");
});

mapping.Component(x => x.Price2, m =>
{
    m.Map(x => x.Amount).Column("OfferPrice2");
    m.Map(x => x.Group).Column("CurrencyConverterRateGroupID").Readonly();
});

你确定没有办法制作自定义过滤器或其他东西吗?