Je suis en train de tracer une structure de données simple dans NHibernateFluent NHibernate hasMany Clé étrangère Cartographie Problème
Tables:
Employees
employeeID int
username varchar(30)
departmentID int
Departments
departmentID int
deptName varchar(50)
Ma cartographie du département est comme ceci:
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");
}
}
... et le mappage des employés
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");
}
}
Je suis en train de boucler à travers les départements et tirer tous les employés de chaque département:
foreach (var i in _directoryData.DepartmentCollection)
{
foreach (var e in i.Employees)
{
Debug.WriteLine(i.DepartmentName + " " + e.UserName);
}
}
qui me donne une erreur indiquant « Invalid column name 'Department_id'.
» ... et dans la requête générée qu'elle utilise department_id ainsi. Lorsque je fais une boucle dans les ministères et que je publie le nom du ministère, cela fonctionne très bien.
Une idée de ce qui me manque pour obtenir le nom de colonne correct pour departmentID? Voici mes objets modèle juste au cas où:
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 - oui, je l'ai fait. Ma cartographie semble être la même que le wiki de cartographie sur le site fluentnhibernates. –