2010-09-05 14 views
9

Ho creato un file dbml nel mio progetto, quindi ho trascinato due tabelle da un database nella finestra di progettazione. Queste sono le tabelle per l'intestazione dell'ordine e le righe ordine e le righe ordine hanno una chiave esterna per ordinare l'intestazione in modo da renderla una relazione uno a molti.Problema con l'associazione di generazione all'interno del file dbml per LINQ to SQL

Non appena le due tabelle vengono trascinate sulla finestra di progettazione, viene visualizzata la freccia di associazione e tutto appare correttamente. Nelle proprietà per l'associazione, la proprietà figlio è impostata su True, l'accesso è pubblico, la modalità di trasmissione è (nessuna), il nome è OrderLines (in origine taOrderLines, ma modificato da me per essere chiamato OrderLines.

Il problema è che no OrderLines proprietà viene creata. ho controllato manualmente nel file cs generato anche, e né la parola OrderLines o associazione è trovato lì.

che cosa sto facendo male qui?

+0

Ho avuto questo problema due volte e in qualche modo non sono riuscito a trovare questa domanda quando cercavo una soluzione (almeno non all'inizio). Il testo della domanda va bene, ma il nome della domanda è piuttosto ampio, rendendo difficile capire che questa è la domanda giusta. Di conseguenza ho finito per trovare la domanda solo mentre cercavo di scrivere la mia (suppongo che la ricerca basata sul testo abbia funzionato bene). La domanda non richiesta che ho scritto era intitolata "Tavolo associato non accessibile dal modello". – jahu

risposta

22

assicurarsi che ogni classe ha una chiave primaria.


Se i propri oggetti non hanno una proprietà Chiave primaria nel dbml, il rilevamento degli oggetti LinqToSql non può vedere quegli oggetti e le proprietà relazionali non verranno generate.

+0

Questo era effettivamente il problema. Non ho nemmeno pensato che il database su cui stavo lavorando non avesse le corrette chiavi primarie impostate. La tabella OrderLines non aveva una chiave primaria. Quando la chiave primaria è stata creata, ha funzionato come previsto. –