У меня есть справочная таблица со всеми видами контролируемых данных значения подстановки для пола, типа адреса, контактного типа и т.д. Многие таблицы имеют несколько внешних ключи к этой справочной таблицеНесколько внешних ключи к одной и тем же таблицам
Я также имеют таблицы ссылок «многие-ко-многим», которые имеют два внешних ключа к одной таблице. К сожалению, когда эти таблицы втягиваются в модель 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 после каждого поколения и заменяет имя участника чем-то, полученным из этого ключа (поскольку я придерживаюсь соглашения об именах для этих типов ключей). Кто-нибудь нашел лучшее решение этой проблемы?
Это кажется уместным: http://stackoverflow.com/questions/3736003/sqlmetal-multiple-foreign-keys-pointing-to-one-table-issue – DenNukem