其他分享
首页 > 其他分享> > CodeGo.net>如何在NHibernate的CompositeId映射中设置列

CodeGo.net>如何在NHibernate的CompositeId映射中设置列

作者:互联网

我有一个带有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,则可以设置Column,但是使用Composite则不能.

我怎样才能做到这一点?

解决方法:

我发现了怎么做.
在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();
    }
}

标签:visual-studio-2013,firebird,mapping,c,fluent-nhibernate
来源: https://codeday.me/bug/20191120/2045555.html