2010-11-14 12 views
0

J'ai un problème avec la méthode .include de l'entité Auto-Tracking. Mes documents appelés table ont des relations avec les tableaux Etats, Entreprises, Ouvriers et Départements. Je veux charger tous les documents avec ces données connexes. Im Tring faire cela comme ça:Auto-Tracking Entity Définit et charge les entités reconnues avec le problème include

context.Documents.Include("Workers.Departments.States.Companies").ToList(); 

Mais cela me renvoie une exception:

A spécifié Inclure le chemin n'est pas valide. Le EntityType « workflowModel.Department » ne déclare pas une propriété de navigation avec le nom « Etats ».

La même erreur aussi pour les entreprises. Qu'est-ce que les travailleurs étrangers et travaille ministères. Je ne fonctionne pas non plus pour Société et État (j'ai utilisé la pluralisation et la singularisation) J'ai vérifié le nom sur le modèle (Entity Set Name) et copié les noms et je n'ai toujours pas travaillé. méthode pour charger toutes ces données? Merci d'avance pour toute aide!

+0

Pas exactement sûr de ce qui se passe sans voir le modèle, mais vous devriez regarder dans les modèles avec lambdas qui rendent le chargement impatient fortement typé. Enregistre beaucoup de maux de tête comme celui-ci. Je vais essayer de vous trouver de bons liens. – Daniel

+1

Consultez ces pages: http://www.codetuning.net/blog/post/Entity-Framework-compile-safe-Includes.aspx http://howdoinetmw.blogspot.com/2009/12/how-do -i-create-type-safe-includes-with.html – Daniel

+0

En utilisant cette méthode include, il a commencé à fonctionner correctement, merci beaucoup! :) – Pax0r

Répondre

0

Le problème est ici:

je double vérifié le nom du modèle (entité Définir le nom de la propriété) et copier les noms et encore du travail na pas

Vous devriez regarder l'entité Département par exemple et copier le nom du propriété de navigation qui représente État. Probablement quelque chose comme cela fonctionnera (chaque département ne dispose que d'un État et pas beaucoup de ce qui est logique):

context.Documents.Include("Workers.Departments.State.Companies").ToList(); 

En outre, vous devriez regarder dans l'entité de l'Etat et de découvrir le nom de Société propriété de navigation et le mettre dans votre méthode Include.

+0

J'ai essayé à la fois pluriel et singulier et cela n'a pas fonctionné, mais comme je l'ai dit plus haut avec cette version labda ça marche;) – Pax0r