У меня есть справочная таблица со всеми видами данных поиска контролируемых значений для пола, типа адреса, типа контакта и т. Д. Многие таблицы имеют несколько внешних ключей для этой справочной таблицы
У меня также есть таблицы сопоставления «многие ко многим», в которых есть два внешних ключа к одной и той же таблице. К сожалению, когда эти таблицы включаются в модель Linq и генерируется DBML, SQLMetal не смотрит на имена столбцов внешнего ключа или имена ограничений, а только на целевую таблицу. Таким образом, я получаю членов с именами Reference1, Reference2, ... не очень удобных для обслуживания. Пример:
<Association Name="tb_reference_tb_account" Member="tb_reference" <======
ThisKey="shipping_preference_type_id" OtherKey="id" Type="tb_reference"
IsForeignKey="true" />
<Association Name="tb_reference_tb_account1" Member="tb_reference1" <======
ThisKey="status_type_id" OtherKey="id" Type="tb_reference"
IsForeignKey="true" />
Конечно, я могу зайти в DBML и вручную изменить имена членов, но это означает, что я больше не могу обходить схему своей базы данных. Это не вариант на текущем этапе модели, которая все еще развивается.
Разделение справочной таблицы на n отдельных таблиц также нежелательно.
Я, вероятно, могу написать скрипт, который запускается для XML после каждого поколения и заменяет имя элемента чем-то, полученным из ThisKey (поскольку я придерживаюсь соглашения об именах для этих типов ключей).
Кто-нибудь нашел лучшее решение этой проблемы?