Domanda

Sto cercando di mappare una semplice struttura di dati in NHibernate

Tabelle:

Employees
employeeID int
username varchar(30)
departmentID int

Departments
departmentID int
deptName varchar(50)

La mappatura del mio dipartimento è così:

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

... e la mappatura dei dipendenti

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

Sto cercando di girare attraverso i dipartimenti e tirare tutti i dipendenti da ciascun dipartimento:

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

Il che mi dà un errore affermando "Invalid column name 'Department_id'."... e nella query generata utilizza anche dipartimone_id. Quando faccio il giro attraverso i dipartimenti e produco il nome del dipartimento funziona bene.

Qualche idea di cosa mi manca per ottenere il nome della colonna corretto per il dipartimento ID? Ecco gli oggetti del mio modello nel caso:

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

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top