У меня есть таблица устаревших данных. Мне нужно подключить мое приложение. Я использую первую кодовую модель POCO. У меня есть следующие классы:Код первых отношений с сущностью, свободно API
public class Equipment
{
[Key]
public string EquipmentId { get; set; }
public string OriginatorId { get; set; }
public virtual Employee Employee { get; set; }
}
public class Employee
{
[Key]
[Column("employee_id")]
public string EmployeeId { get; set; }
public string EmployeeName { get; set; }
[ForeignKey("OriginatorEmployeeId")]
public virtual Equipment Equipment { get; set; }
}
Мне нужно отобразить EmployeeID в классе Employee, чтобы в OriginatorEmployeeId в классе оборудования.
Также устаревшая таблица представлена классом Employee. На самом деле таблица называется сотрудником (нижний регистр), а столбец EmployeeId - «employee_id». Я хочу сохранить имена моих классов и свойств в соответствии с остальной частью приложения, следовательно, Employee и EmployeeId.
Вот что я попытался с помощью текучего API:
modelBuilder.Entity<Employee>().Map(m =>
{
m.MapInheritedProperties();
m.ToTable("employee");
});
modelBuilder.Entity<Equipment>()
.HasOptional<Employee>(u => u.Employee)
.WithOptionalDependent(c => c.Equipment).Map(p => p.MapKey("OriginatorEmployeeId"));
Я, вероятно, смешивая вещи, которые я не нужно. Ошибка, которую я получаю прямо сейчас:
Multiplicity is not valid in Role 'Equipment_Employee_Source' in relationship 'Equipment_Employee'. Because the Dependent Role properties are not the key properties, the upper bound of the multiplicity of the Dependent Role must be '*'.
Любая помощь приветствуется.
Я не знаком с инфраструктурой сущностей, но должен ли ваш внешний ключ отображать реальный идентификатор, например EquipmentId, вместо объекта Equipment? – PmanAce
Спасибо PmanAce. С инфраструктурой сущности (EF) объект Equipment в классе Employee является навигационным свойством. Это способ представления отношений EF – steveareeno
Каковы отношения, которые вы пытаетесь достичь? – Pluc