C#:AutoMapping - мога ли да създам два маппинг класa в един проект, които да се свържат с MS SQl?

Изполвах AutoMapping и Reflection, но единия ми клас се мапва правилно, а другия изкарва съобщение, че не се е мапнал.

Дали е възможно да има ограничения в маппинг класовете в един обект.

Използвам VS за C# и NHibernate за да се свържа с MsSQL:

Това ми е SessionFactory Class:

namespace ProjectTutorial01
{
  public  class SessionFactory
    {
        public static volatile ISessionFactory iSessionFactory;
        public static object syncRoot = new Object();
       public static ISession OpenSession
        {
            get
            {
                if (iSessionFactory==null)
                {
                    lock (syncRoot)
                    {
                        if (iSessionFactory==null)
                        {
                            iSessionFactory = BuildSessionFactory();
                        }
                    }
                }
                return iSessionFactory.OpenSession();
            }
        }
        public  static ISessionFactory BuildSessionFactory()
        {
            try
            {
                string configurationString = System.Configuration.ConfigurationManager.AppSettings["çonnection_string"];
                return Fluently.Configure().
                    Database(MsSqlConfiguration.MsSql2012.ConnectionString(configurationString)).
                    Mappings(m => m.FluentMappings.AddFromAssemblyOf<Program>()).ExposeConfiguration(BuildSchema)
                    .BuildSessionFactory();
            }
            catch (Exception ex)
            {
                System.Windows.Forms.MessageBox.Show(ex.Message);
                throw ex;
            }
        }
        public static AutoPersistenceModel CreatMapping()
        {
            return AutoMap.Assembly(System.Reflection.Assembly.GetCallingAssembly()).
                Where(testc => testc.Namespace =="ProjectTutorial01");
        }
        public static void BuildSchema(NHibernate.Cfg.Configuration config)
        {

        }
    }
}

 

A това единия клас, който се мапва:

public  class EmployeeMapping:ClassMap<Employee>
    {
        public EmployeeMapping()
        {
            Id(x => x.ID);
            Map(x => x.FirstName).Not.Nullable();
            Map(x => x.LastName).Not.Nullable();
            Map(x => x.Email).Not.Nullable();
            Map(x => x.Address).Not.Nullable();
            Map(x => x.DepartmentID).Not.Nullable();
            Map(x => x.Position).Not.Nullable();
            Map(x => x.Salary).Not.Nullable();
            Map(x => x.HireDate).Not.Nullable();
            Table("Employees");
        }
    }

 

А това на класа, който не :

public class SalaryMapping : ClassMap<Salary>
    {
        public SalaryMapping()
        {
            Id(x => x.ID);
            Map(x => x.TotalAmount).Not.Nullable();
            Map(x => x.NetAmount).Not.Nullable();
            Map(x => x.Bonus).Nullable();
            Map(x => x.Other).Nullable();
            Table("SalaryCalculate");
        }
    }

Като самите класове съдържат следното:

//Employee:

public class Employee : IPerson
    {
        private string email;
        private DateTime hireDate;
        private int departmentID;
        private decimal salary;
        public virtual int ID { get; set; }
        public virtual string FirstName { get; set; }
        public virtual string LastName { get; set; }
        public virtual string Email 
        {
            get
            {
              return  this.Email = email;
            }
            set
            {
                if (!value.Contains("@")&&value==null)
                {
                    throw new ArgumentException("Invalid email format!");
                }
                this.email = value;
            }
        }
        public virtual string Address { get; set; }
        public virtual int DepartmentID
        {
            get
            {
                return this.DepartmentID = departmentID;
            }
            set
            {
                if (value<0)
                {
                    throw new ArgumentException("DepartmentId can not be negative!");
                }
                this.departmentID = value;
            }
        }
        public virtual string Position { get; set; }
        public virtual decimal Salary
        {
            get
            {
                return this.Salary = salary;
            }
            set
            {
                if (value < 0)
                {
                    throw new ArgumentException("Salary can not be negative!");
                }
                this.salary = value;
            }
        }
        public virtual DateTime HireDate 
        {
            get
            {
                return this.HireDate = hireDate;
            }

            set
            {
                if (DateTime.Compare(value, DateTime.Today) == 0)
                {
                    throw new ArgumentException("Date cannot be later than today!");
                }
                this.hireDate = value;
            }
        }
    }

Класс Salary:

public class Salary
    {
        public virtual int ID { get; set; }
        public virtual decimal TotalAmount { get; set; }
        public virtual decimal NetAmount { get; set; }
        public virtual decimal Bonus { get; set; }
        public virtual  decimal Other { get; set; }
    }

 

Нова съм в това и се загубих вече.

Благодаря предварително!