Mam tabeli odniesienia ze wszystkimi rodzajami kontrolowanych danych wartość odnośników dla płci, typ adresu, rodzaju kontaktów itp Wiele tabel mają wiele kluczy obcych do tej tabeli referencyjnejWiele kluczy obcych do tej samej tabeli
ja również mają tabele powiązań wiele-do-wielu, które mają dwa klucze obce do tej samej tabeli. Niestety, kiedy te tabele są wciągane do modelu Linq i generowany jest DBML, SQLMetal nie szuka nazw kolumn kluczy obcych lub nazw ograniczeń, ale tylko w tabeli docelowej. Więc kończę z członkami o nazwie Reference1, Reference2, ... niezbyt przyjaznymi dla obsługi. Przykład:
<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" />
mogę iść do dbml i ręcznie zmienić nazwy członków, oczywiście, ale to oznaczałoby, że nie może już obie moje schematu bazy danych. Nie jest to opcja na obecnym etapie modelu, który wciąż ewoluuje. Podział tabeli odniesienia na n poszczególnych tabel również nie jest pożądany.
Mogę prawdopodobnie napisać skrypt, który działa na XML po każdym pokoleniu i zastępuje nazwę elementu czymś wyprowadzonym z ThisKey (ponieważ stosuję się do konwencji nazewnictwa dla tego typu kluczy). Czy ktoś znalazł lepsze rozwiązanie tego problemu?
Wydaje się istotne: http://stackoverflow.com/questions/3736003/sqlmetal-multiple-foreign-keys-pointing-to-one-table-issue – DenNukem