2010-09-05 3 views
9

J'ai créé un fichier dbml dans mon projet, puis j'ai fait glisser deux tables d'une base de données dans le concepteur. Ce sont les tables pour l'en-tête de commande et les lignes de commande, et les lignes de commande ont une clé étrangère pour commander l'en-tête pour en faire une relation un à plusieurs.Problème avec l'association de génération dans le fichier dbml pour LINQ to SQL

Dès que les deux tables sont déplacées sur le concepteur, la flèche d'association apparaît et tout semble correct. Dans les propriétés de l'association, la propriété enfant est définie sur True, l'accès est public, le mode Héritage est (aucun), le nom est OrderLines (à l'origine taOrderLines, mais édité par moi pour être appelé OrderLines.)

Le problème est que non OrderLines propriété est créée. J'ai vérifié manuellement dans le fichier cs généré aussi, et ni le mot OrderLines ou association s'y trouve.

Qu'est-ce que je fais mal ici?

+0

J'ai eu ce problème deux fois maintenant et d'une manière ou d'une autre je n'ai pas pu trouver cette question en cherchant une solution (du moins pas au début). Le texte de la question lui-même est correct, mais le nom de la question est assez large, ce qui fait qu'il est difficile de comprendre que c'est la bonne question. En conséquence, j'ai fini par trouver la question seulement en essayant d'écrire la mienne (je suppose que la recherche basée sur le texte a bien fait son travail). La question non-posée que j'ai écrite s'appelait quelque chose comme "La table associée n'est pas accessible depuis le modèle". – jahu

Répondre

22

Assurez-vous que chaque classe a une clé primaire.


Si vos objets n'ont pas de propriété de clé primaire dans le dbml, le suivi d'objet LinqToSql ne peut pas voir ces objets et les propriétés relationnelles ne seront pas générées.

+0

C'était en fait le problème. Je n'ai même pas considéré que la base de données sur laquelle je travaillais n'avait pas de clés primaires correctes. La table OrderLines n'avait pas de clé primaire. Lorsque la clé primaire a été créée, cela a fonctionné comme prévu. –

Questions connexes