#entity_framework
У меня в БД есть таблица "Cities".
В моём проекте я создаю класс "City".
Я считываю и вывожу на экран список городов из этой таблицы.
Если я назову свой класс, предположим, "Cit", то EF создаст таблицы "Cit" в БД и
она будет пустая.
Как EF понимает единственное и множ числа в названиях классов и таблиц БД ?
Ответы
Ответ 1
Для этой цели используется PluarisationService - класс для преобразования имен собственных в множественные. Его фабричный метод возвращает экземпляр конкретной реализации этого класса для необходимого языка. Однако пока реализованы только правила преобразования для английского. Даже для английского языка правила преобразований довольно сложны и запутаны. Можете покопаться в коде текущей реализации. Там проверяются префиксы, суффиксы, исключения, нестандартные собственные, и ещё много другого. Очень интересно и познавательно. Код этот написан в соответствии с действующими правилами грамматики английского языка, по которым ваше слово "Cit" не является корректным собственным именем. По факту - это сокращение, которое естевственно нельзя пребразовать в множественное числоОтвет 2
Думаю, что он никак не понимает правильность названия. Просто берет то название, которое есть, и переводит его во множественное число, если заранее не отключить такое поведение (PluralizingTableNameConvention). Если отключить, то использует имя класса. Кроме того возможно через аннотации или api задать таблицам произвольные имена. [Table("Cities")] class Cit { ... }
Комментариев нет:
Отправить комментарий