que estoy tratando de asignar una estructura de datos simple en NHibernateFluido NHibernate hasMany clave externa Mapeo Problema
Tablas:
Employees
employeeID int
username varchar(30)
departmentID int
Departments
departmentID int
deptName varchar(50)
Mi mapeo departamento es así:
public class DepartmentMap: ClassMap<Department>
{
public DepartmentMap()
{
Id(m => m.DepartmentID).Column("departmentID");
Map(m => m.DepartmentName).Column("deptName").Length(50);
HasMany(m => m.Employees);
Table("Departments");
}
}
... y el mapeo de empleados
public class EmployeeMap : ClassMap<Employee>
{
public EmployeeMap()
{
Id(x => x.EmployeeID, "employeeID");
Map(x => x.UserName, "username").Length(30);
References<Department>(x => x.Department, "departmentID");
Table("Employees");
}
}
estoy tratando de bucle a través de los departamentos y tirar de todos los empleados de cada departamento:
foreach (var i in _directoryData.DepartmentCollection)
{
foreach (var e in i.Employees)
{
Debug.WriteLine(i.DepartmentName + " " + e.UserName);
}
}
que me da un error que indica "Invalid column name 'Department_id'.
" ... y en la consulta generada se utiliza department_id también. Cuando simplemente recorro los departamentos y genero el nombre del departamento, funciona bien.
¿Alguna idea de lo que me falta para obtener el nombre de columna correcto para departmentID? Aquí están mis objetos del modelo por si acaso:
public class Department
{
public virtual int DepartmentID { get; set; }
public virtual string DepartmentName { get; set; }
public virtual ICollection<Employee> Employees { get; set; }
}
public class Employee : PersistentEntity
{
public virtual int EmployeeID { get; set; }
public virtual string UserName { get; set; }
public virtual Department Department { get; set; }
}
@ David - Sí, lo hice. Mi asignación parece ser la misma que la wiki de asignación en el sitio fluentnhibernates. –