Я пытаюсь создать функцию, которая автоматически добавляет таблицу контрольного журнала, когда она мне нужна.Это вроде работает, но единственная проблема в том, что таблица аудита не получает указанный первичный ключ, он сохраняет ранее указанный ItemId в качестве первичного ключа.
Это потому, что я наследую Department в ADepartmentи уже указал первичный ключ в первом EntityTypeConfiguration.Я предполагаю, что EF достаточно умен, чтобы понять это, но это не то, что я хочу.
Есть ли способ, которым я могу сказать второй EntityTypeConfiguration, что он должен прекратить использовать ItemId в качестве первичного ключа и начать использовать AuditId для этого?
public class Item
{
public int ItemId { get; set;}
}
public class Department : Item
{
public string Name { get; set; }
}
public class ADepartment : Department, IAudit
{
public int AuditId { get; set; }
}
EntityTypeConfiguration<Department> cfg = new EntityTypeConfiguration<Department>();
cfg.HasKey(p => p.ItemId);
cfg.Map(p => p.MapInheritedProperties());
cfg.ToTable(string.Format("Entity{0}", typeof(Department).Name));
model.Configurations.Add<Department>(cfg);
EntityTypeConfiguration<ADepartment> c = new EntityTypeConfiguration<ADepartment>();
c.HasKey(p => p.AuditId);
c.Map(p => p.MapInheritedProperties());
c.ToTable(string.Format("Audit{0}", typeof(ADepartment).Name));
model.Configurations.Add<ADepartment>(c);