流利的NHibernate鉴别值 [英] Fluent NHibernate-discriminator value

查看:93
本文介绍了流利的NHibernate鉴别值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要为父类设置多个判别值。有可能吗?怎么做?

例如:



PARENT_CLASS



DiscriminateSubClassesOnColumn(COLUMN_NAME,X);



CHILD_CLASS_1



DiscriminatorValue(Y );



CHILD_CLASS_2



DiscriminatorValue(Z);



这是可能的。但是,如果我在COLUMN_NAME列中有超过这3个值,该怎么办?



例如,如果P和Q也是该列的可能值,那么该怎么办?我应该写吗?



DiscriminateSubClassesOnColumn(COLUMN_NAME,X,P,Q);显然这是不可能写的。但我不知道该怎么做。有人可以帮帮我吗?



谢谢。

解决方案

 ENTITY: 

public partial class InsuranceApprovalInvoice:OrderInsuranceApproval
{
[DataMember()]
public virtual PatientInvoice PatientInvoice { get ; set ; }

}
public partial class InsuranceApprovalOrder:OrderInsuranceApproval
{
[DataMember()]
public virtual 订单订单{ get ; set ; }

}
public partial class InsuranceApprovalPackage:OrderInsuranceApproval
{
[DataMember()]
public virtual TreatmentPlanPackages TreatmentPlanPackages { get ; set ; }

}

MAPPER:

DiscriminateSubClassesOnColumn( ObjectTypeID)。AlwaysSelectWithValue()
.SubClass< insuranceapprovalinvoice>(( int )InsuranceApprovalTypeEnum.Invoice,
m = > m.References(p = > p.PatientInvoice, InvoiceMasterID)。列( ObjectID)。ReadOnly())

.SubClass< insuranceapprovalorder>(( int )InsuranceApprovalTypeEnum.Order ,
m = > m.References(p = > p.Order, OrderID )。列( ObjectID)。ReadOnly())

.SubClass< insuranceapprovalpackage>(( int )InsuranceApprovalTypeEnum.Package,
m = > m.References(p = > p.TreatmentPlanPackages, TreatmentPlanPackagesID)。列( ObjectID)。ReadOnly()) ;
< / insuranceapprovalpackage > < / insuranceapprovalorder > < / insuranceapprovalinvoice >


I need to set more than one discriminate values for parent class. Is it possible to do and how?
For example:

PARENT_CLASS

DiscriminateSubClassesOnColumn("COLUMN_NAME", "X");

CHILD_CLASS_1

DiscriminatorValue("Y");

CHILD_CLASS_2

DiscriminatorValue("Z");

This is possible. But what if i have more than these 3 values in column "COLUMN_NAME"?

For example if "P" and "Q" are also possible values for that column what should i write?

DiscriminateSubClassesOnColumn("COLUMN_NAME", "X","P","Q"); Obviously this is not possible to write. But i don't know how to do this. Can someone help me?

Thanks.

解决方案

ENTITY:

public partial class InsuranceApprovalInvoice : OrderInsuranceApproval
    {
        [DataMember()]
        public virtual PatientInvoice PatientInvoice { get; set; }

    }
    public partial class InsuranceApprovalOrder : OrderInsuranceApproval
    {
        [DataMember()]
        public virtual Order Order { get; set; }

    }
    public partial class InsuranceApprovalPackage : OrderInsuranceApproval
    {
        [DataMember()]
        public virtual TreatmentPlanPackages TreatmentPlanPackages { get; set; }

    }

MAPPER:

DiscriminateSubClassesOnColumn("ObjectTypeID").AlwaysSelectWithValue()
                .SubClass<insuranceapprovalinvoice>((int) InsuranceApprovalTypeEnum.Invoice,
                m => m.References(p => p.PatientInvoice, "InvoiceMasterID").Column("ObjectID").ReadOnly())
                    
                .SubClass<insuranceapprovalorder>((int) InsuranceApprovalTypeEnum.Order,
                    m => m.References(p => p.Order, "OrderID").Column("ObjectID").ReadOnly())

                .SubClass<insuranceapprovalpackage>((int) InsuranceApprovalTypeEnum.Package,
                    m => m.References(p => p.TreatmentPlanPackages, "TreatmentPlanPackagesID").Column("ObjectID").ReadOnly());
</insuranceapprovalpackage></insuranceapprovalorder></insuranceapprovalinvoice>


这篇关于流利的NHibernate鉴别值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆