J'ai des problèmes avec Mapping.
J'ai deux tables dans ma base de données comme suit : Employee et EmployeeManagers
Employé
EmployeeId int Nom nvarchar
EmployeeManagers
EmployeeIdFk int ManagerIdFk int
L'employé peut donc avoir 0 ou plusieurs Managers. Un manager est lui-même un employé.
J'ai la classe suivante pour représenter les Employés et les Managers
public class Employee
{
public virtual int Id
{
get;
set;
}
public virtual string Name
{
get;
set;
}
public virtual IList<Employee> Managers
{
get;
protected set;
}
public Employee()
{
Managers = new List<Employee>();
}
}
Je n'ai pas de classe pour représenter le Manager car je pense qu'il n'y en a pas besoin, puisque le Manager lui-même est un Employé.
J'utilise le mappage automatique et je n'arrive pas à trouver comment faire correspondre cette classe à ces deux tables. J'ai implémenté IAutoMappingOverride pour remplacer les mappages automatiques pour les employés, mais je ne suis pas sûr de ce qu'il faut faire.
public class NodeMap : IAutoMappingOverride
{
public void Override(AutoMapping<Node> mapping)
{
//mapping.HasMany(x => x.ValidParents).Cascade.All().Table("EmployeeManager");
//mapping.HasManyToMany(x => x.ValidParents).Cascade.All().Table("EmployeeManager");
}
}
Je veux également m'assurer qu'un employé ne peut pas se voir attribuer deux fois le même responsable. C'est quelque chose que je peux vérifier dans mon application, mais j'aimerais appliquer une contrainte à la table EmployeeManager (par exemple, une clé composite) afin qu'un même responsable ne puisse pas être affecté plusieurs fois à un employé.
Quelqu'un peut-il m'aider à résoudre ce problème ?
En attente de Nabeel