I did this.
*Classes:*
public class BaseDistribution
    {
        public virtual int Id{ get; set; }
        public virtual decimal Sum { get; set; }
        public virtual string AddInfo { get; set; }
        public virtual string Name { get; protected set; }
        public virtual Work Work { get; set; }
        public virtual int Type { get; set; }

        public BaseDistribution() {  }
    }
    public class DivisionDistribution : BaseDistribution
    {
        public virtual InnerDivision Division { get; set; }
        public override string Name
        {
            get
            {
                return Division.ShortName;
            }
        }
        public DivisionDistribution() : base() { }
    }
    public class EmployeeDistribution : BaseDistribution
    {
        public virtual string SingleExecuter { get; set; }
        public override string Name
        {
            get
            {
                return SingleExecuter;
            }
        }
        public EmployeeDistribution() : base() { }
    }
______________________
*Mapping:*
public class BaseDistributionMap : ClassMap<BaseDistribution>
    {
        public BaseDistributionMap()
        {
            Table("distributions");
            Id(x => x.Id).Column("distribution_id");
            Map(x => x.Sum).Column("sum");
            Map(x => x.AddInfo).Column("add_info");
            Map(x => x.Type).Column("type");
            References(x => x.Work).Column("work_id");
            DiscriminateSubClassesOnColumn("type");
        }
    }
    public class DivisionDistributionMap : SubclassMap<DivisionDistribution>
    {
        public DivisionDistributionMap()
        {
            DiscriminatorValue(1);
            References(x => 
x.Division).Column("division_id").Fetch.Select();
        }
    }
    public class EmployeeDistributionMap : SubclassMap<EmployeeDistribution>
    {
        public EmployeeDistributionMap()
        {
            DiscriminatorValue(2);
            Map(x => x.SingleExecuter).Column("single_executer");
        }
    }
Is it right?
What advantages this variant gives to me instead of variant with "switch" 
inside Name property in one class?

-- 
You received this message because you are subscribed to the Google Groups 
"Fluent NHibernate" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/fluent-nhibernate/-/fRj_RW08dyEJ.
To post to this group, send email to fluent-nhibernate@googlegroups.com.
To unsubscribe from this group, send email to 
fluent-nhibernate+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/fluent-nhibernate?hl=en.

Reply via email to