Я недавно унаследовал систему, которая в значительной степени опирается на структуру базы данных EAV и действительно испытывает трудности с точки зрения производительности.
Я хочу использовать nhibernate или другой подходящий ORM-продукт для сопоставления этих таблиц EAV с сущностями таким образом, чтобы мы могли сопоставить строку со свойством. Затем мы можем провести рефакторинг базы данных, чтобы сделать ее реляционной. Кто-нибудь знает возможно ли это? Пример также будет оценен! :)
Чтобы почувствовать структуру, она выглядит примерно так:
Entity (EntityId)
EntityVarchar (EntityId, VarcharValue)
EntityFloat (EntityId, VarcharValue)
и так далее. Если бы у меня была сущность Customer, я бы хотел использовать имя Customer.Name, чтобы получить имя, а не Customer.Varchar ["Name"].
Обратите внимание, что в нашей системе нет необходимости использовать EAV-модель, мы не допускаем изменений в структурах данных во время выполнения, и я считаю, что в любом случае это плохая практика.