Fluent NHibernate HasMany Foreign Key Mapping Problem

Ich versuche, die Karte ist eine einfache Datenstruktur in nhibernate

Tabellen:

Employees
employeeID int
username varchar(30)
departmentID int

Departments
departmentID int
deptName varchar(50)

Meiner Abteilung die Zuordnung ist wie folgt:

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");
    }
}

... und das Mitarbeiter-mapping

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");
    }
}

Ich versuche eine Schleife durch die Abteilungen und die ziehen alle Mitarbeiter aus jeder Abteilung:

foreach (var i in _directoryData.DepartmentCollection)
{
    foreach (var e in i.Employees)
    {
        Debug.WriteLine(i.DepartmentName + " " + e.UserName);
    }
}

gibt mir eine Fehlermeldung, die besagt "Invalid column name 'Department_id'." ... und in der erzeugten Abfrage verwendet es department_id als gut. Wenn ich nur Schleife durch die Abteilungen und die Ausgabe der name der Abteilung, es funktioniert gut.

Jede Idee, was mir fehlt, um die richtigen Spaltennamen für departmentID? Hier sind meine Modell die Objekte nur für den Fall:

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; }
}
  • ja, habe ich. Mein mapping ist offenbar die gleiche wie die mapping-wiki auf fluentnhibernates Website.
Schreibe einen Kommentar