Я пытаюсь очистить некоторые контексты данных Entity Framework, которые были изначально созданы без каких-либо соглашений об именах. Я хотел бы сохранить старые классы, но при этом иметь новый, правильно названный класс, доступный в то же время, чтобы все другие проекты, использующие эти контексты данных, не нуждались в немедленном изменении. Я буду отмечать старый класс как устаревший, используя аннотации данных, чтобы они не использовались ни при каких новых разработках. Будут изменены только классы, база данных останется с плохим именованием на вечность.
Когда я создаю новый класс на основе таблицы, которая очищает все имена, сохраняя при этом старый класс, представляющий таблицу, я могу создавать классы, но когда я пытаюсь использовать любой из них, я получаю следующую ошибку:
Типы сущностей «Клиент» и «lu_Clients» не могут совместно использовать таблицу «lu_Clients», поскольку они не находятся в одной иерархии типов или не имеют действительного отношения внешнего ключа один к одному с соответствующими первичными ключами между ними.
Мой уродливый класс:
[Obsolete("Use Client class instead")]
public class lu_Clients
{
[Key]
[Column("ClientsSeq")]
public int ClientsSeq { get; set; }
[Column("ClientsID")]
public string ClientsID { get; set; }
[Column("ClientsName")]
public string ClientsName { get; set; }
}
Мой очищенный класс:
[Table("lu_Clients")]
public class Client
{
[Key]
[Column("ClientsSeq")]
public int Sequence { get; set; }
[Column("ClientsID")]
public string Id { get; set; }
[Column("ClientsName")]
public string Name { get; set; }
}
Есть какие-нибудь предложения о том, как заставить два класса работать с одной и той же концепцией таблицы? Или есть лучший способ сохранить совместимость с устаревшим и новым?