У меня проблемы с отображением.
В моей базе данных есть две таблицы: Employee и EmployeeManager
Employee
EmployeeId int
Имя nvarchar
EmployeeManagers
EmployeeIdFk int
ManagerIdFk int
Таким образом, у сотрудника может быть 0 или более менеджеров. Сам менеджер также является Сотрудником.
У меня есть следующий класс, чтобы представлять сотрудника и менеджеров
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>();
}
}
У меня нет класса для представления Manager, потому что я думаю, что в этом нет необходимости, поскольку сам Manager является Сотрудником.
Я использую autoMapping и просто не могу понять, как сопоставить этот класс с этими двумя таблицами. Я реализую IAutoMappingOverride для переопределения автоматических сопоставлений для Сотрудника, но я не уверен, что в нем делать.
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");
}
}
Я также хочу убедиться, что сотруднику не может быть назначен один и тот же менеджер дважды. Это то, что я могу проверить в своем приложении, но я хотел бы наложить ограничение на таблицу EmployeeManager (например, составной ключ), чтобы один и тот же менеджер не мог быть назначен сотруднику более одного раза.
Может ли кто-нибудь помочь мне с этим, пожалуйста?
Пользователи
Набиль