且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

流利的NHibernate鉴别值

更新时间:2023-09-24 23:51:46

 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>