我有一个需要将我的应用程序连接到的旧表。我正在使用代码优先的 POCO 模型。我有以下课程:
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; }
}
我需要将 Employee 类中的 EmployeeId 映射到 Equipment 类中的 OriginatorEmployeeId。
此外,旧表由 Employee 类表示。该表实际上名为employee(小写),EmployeeId 列名为“employee_id”。我想让我的类和属性的命名与应用程序的其余部分保持一致,因此是 Employee 和 EmployeeId。
这是我尝试使用 fluent 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 '*'.
任何帮助表示赞赏。