如何使用NHibernate在CompositeId映射中设置Column

本文关键字:设置 Column 映射 CompositeId 何使用 NHibernate | 更新日期: 2024-10-18 11:50:28

我有一个带有NHibernate的Composite Id映射,我想在所有这些Id中设置一列。有可能吗?

public class MapProduction : ClassMap<Production>
{
    public MapProduction()
    {
        CompositeId()
            .KeyProperty(c => c.ProductionCode)
            .KeyProperty(c => c.Cycle)
            .KeyProperty(c => c.Crop)
            .KeyProperty(c => c.TechnologyLevel);
        Map(c => c.Area).Column("A_ARE");
        Map(c => c.Productivity).Column("P_ARE");
        Map(c => c.syncStatus).ReadOnly();
    }
}

如果我只有一个id,我可以设置一个列,但对于复合,我不能。

我该怎么做?

如何使用NHibernate在CompositeId映射中设置Column

我发现了如何做到这一点。在CompositeId中,有一个用于添加表引用的参数。

public class MapProduction : ClassMap<Production>
{
    public MapProduction()
    {
        CompositeId()
            .KeyProperty(c => c.ProductionCode, "P_PRO")
            .KeyProperty(c => c.Cycle, "C_CIC")
            .KeyProperty(c => c.Crop, "C_CUL")
            .KeyProperty(c => c.TechnologyLevel, "C_NVT");
        Map(c => c.Area).Column("A_ARE");
        Map(c => c.Productivity).Column("P_ARE");
        Map(c => c.syncStatus).ReadOnly();
    }
}