У меня есть две таблицы: DeptMaster и LaborMaster, где один DeptMaster имеет много LaborMasters. Это устаревшие таблицы из старой базы данных, поэтому они не следуют соглашениям об именах Code First. Они оба используют составные ключи, но с разными именами столбцов в каждой таблице. У классов также есть навигационные свойства. Я бы предпочел сопоставлять их с атрибутами, но, пожалуйста, покажите мне этот метод, если это возможно, но также и беглый путь.
[Table("DeptMaster"), Schema="HR"]
public partial class DeptMaster
{
public DeptMaster()
{
this.LaborMasters = new HashSet<LaborMaster>();
}
[Key, Column(Order = 0)]
public decimal DCompanyNum {get;set;}
[Key, Column(Order = 1)]
public decimal DDivisionNum {get;set;}
[Key, Column(Order = 2)]
public decimal DDeptNum {get;set;}
public string DDeptName {get;set;}
public virtual ICollection<LaborMaster> LaborMasters { get; set; }
}
[Table("LaborMaster"), Schema="HR"]
public partial class LaborMaster
{
[Key, Column(Order = 0)]
public decimal LCompanyNum {get;set;}
[Key, Column(Order = 1)]
public decimal LDivisionNum {get;set;}
[Key, Column(Order = 2)]
public decimal LDeptNum {get;set;}
[Key, Column(Order = 3)]
public decimal LEmployeeNum {get; set;}
public string LLaborName {get;set;}
public virtual DeptMaster DeptMaster{ get; set; }
}
В моем OnModelCreating я пытался использовать HasMany, но не ясно, как я заставлю Entity Framework знать, как LCompanyNum, LDivisionNum и LDeptNum дочернего элемента указывают на DCompanyNum, DDivisionNum и DDeptNum родительского элемента, когда поля не совпадают по имени. Опять же, я бы предпочел использовать атрибуты, но я не уверен, возможно ли это. Я открыт для любого. Спасибо.