2009-08-14 4 views
2

J'ai quelques vues que je voudrais relier ensemble dans mon fichier Linq2Sql DBML.Pourquoi les relations de ma table Linq2Sql créées manuellement apparaissent-elles dans le code?

J'ai faites un clic droit, choisi "Ajouter association" et créé manuellement les associations des enfants aux parents, par exemple:

Customer.TypeId -> CustomerTypes.Id 

Mais je ne peux pas le faire dans mon code:

from c in Customers select c.Type.Name 

Des indices? Si les relations existaient dans la base de données, ce qu'elles ne font pas et ne peuvent pas, alors je serais en mesure de le faire.

Répondre

2

C'est bizarre; Je me souviens avoir écrit la réponse que j'ai trouvée ici! Fondamentalement, le problème était que parce que je regardais Views par opposition aux tables, et en essayant de les relier ensemble dans le fichier DBML, ils n'avaient évidemment pas de clés primaires. Une fois que j'avais dit à Linq2Sql quelles colonnes étaient les clés primaires c'était un joyeux chappy!

0

Je viens d'essayer la même chose et la requête était seulement possible une fois que j'avais reconstruit la solution qui contenait le fichier dbml linq-to-sql. Avez-vous reconstruit la solution après avoir fait le changement dans les relations?

Cela a été fait en utilisant deux tables bien, laissez-moi relier deux points de vue et je vais modifier cette réponse avec les résultats

EDIT: Ok qui aspire, mettre assosiation sur une requête LinqToSql thats que les requêtes vues la base de données ne fonctionne pas. Vous pouvez cependant spécifier une jointure dans votre requête linq. Malheureusement, c'est comme si vous faisiez un double travail en le spécifiant dans le fichier DBML et dans votre code, mais si vous mettez simplement quelques commentaires, les gens comprendront pourquoi vous l'avez fait. Donc, au moins sur le fichier DBML que "join" est visible pour les autres.

Questions connexes