【问题标题】:NHibernate is not fetching JoinsNHibernate 没有获取连接
【发布时间】:2011-01-24 21:53:21
【问题描述】:

我有一个实体,它在两个表中定义了流畅的 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);

然后我得到了 Employee 的所有详细信息,除了来自“Salaries”表的列

有什么想法吗?

【问题讨论】:

    标签: nhibernate fluent-nhibernate


    【解决方案1】:

    我建议您像这样使用 HasOne 方法:

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

    }

    【讨论】:

      【解决方案2】:

      Employee 正在延迟加载,因此 NHibernate 只会在您访问 Salary 属性时调用数据库。

      【讨论】:

        【解决方案3】:

        join mapping 中的表和 KeyColumn 名称错误。应该是:

        加入(“薪水”,m => { m.Map (x => map.Salary); m.KeyColumn("Employee_Id"); });

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-04-27
          • 1970-01-01
          • 1970-01-01
          • 2018-11-18
          • 1970-01-01
          • 1970-01-01
          • 2011-02-16
          • 1970-01-01
          相关资源
          最近更新 更多