NHibernate не получает Joins - PullRequest
0 голосов
/ 25 января 2011

У меня есть объект, который определен в двух таблицах с беглым nhibernate

Table one:
Employee
---------
Id,
Name

Table Two:
Salaries
--------
Employee_Id,
Salary

В Fluent NHibernate я определил это так:

EmployeeMap : ClassMap<Employee>
{
public EmployeeMap()
{
   Table("Employee");
   Map(x => x.Id);
   Map (x => x.Name);
   Join ("Salaried", m =>
   {
      m.Map (x => map.Salary);
      m.KeyColumn("EmployeeId");
    });
}
}

Когда я делаю Session.Get как следующее:

Employee e = session.Get<Employee>(employeeId);

Затем я получил все данные о Сотруднике, кроме столбцов из таблицы «Зарплаты»

Есть идеи?

Ответы [ 3 ]

1 голос
/ 25 января 2011

Я бы предложил использовать метод HasOne следующим образом:

EmployeeMap : ClassMap<Employee>
{
     public EmployeeMap()
     {
       Table("Employee");
       Map(x => x.Id);
       Map (x => x.Name);
       HasOne(x=>x.Salary).PropertyRef(r=>r.EmployeeId);
    }

}

0 голосов
/ 25 января 2011

Имена таблиц и KeyColumn неверны в сопоставлении соединений Должно быть:

Регистрация ("Зарплата", м => { m.Map (x => map.Salary); m.KeyColumn ( "EMPLOYEE_ID"); });

0 голосов
/ 25 января 2011

Сотрудник загружается лениво, поэтому NHibernate будет вызывать базу данных только при доступе к свойству Salary.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...