Ok, alors laissez-moi vous expliquer un peu ce que j'essaie de faire.Asp.Net MVC Entity Framework Parent-enfant avec des valeurs remplaçables
J'ai une table appelée WebsitePage qui contient toutes les pages de mon site avec quelques informations à leur sujet. Ensuite, j'ai une table client pour tous mes clients. Ensuite, j'ai une autre table appelée CustomerWebsitePage qui stocke les valeurs client pour certaines des colonnes de la table WebsitePage. Donc, en utilisant le framework d'entité, j'ai importé ces trois tables. Ce que je veux être capable de faire est de retourner une liste de WebsitePage fortement typée qui a des valeurs de CustomerWebsitePage s'il y a des valeurs pour cela. Ainsi, par exemple, un de mes clients a ajouté un CustomerWebsitePageName pour l'une de mes pages de site Web. Je souhaite renvoyer une liste de pages Web contenant le CustomerWebsitePageName au lieu du nom de la page Web dans ce cas. Mais le nom original de WebsitePage pour tout le reste puisqu'il n'a pas été substitué.
Le pointeur ici est que ma table WebsitePage a une clé étrangère à elle-même pour une relation parent/enfant. Donc, je veux aussi retourner l'enfant WebsitePages en même temps. J'ai essayé d'utiliser une fonction d'importation pour obtenir ce que je voulais, mais bien sûr j'ai perdu les pages enfants.
J'ai essayé à peu près tout pour obtenir ce que je veux en utilisant le framework Entity et LINQ. Mais jusqu'à présent, presque tout ce que j'essaie finit avec une exception. Voici quelques-unes:
- Le EntityCollection a déjà été initialisé
- L'entité ou le type complexe 'MyEntityModel.WebsitePage' ne peut pas être construit dans une requête LINQ to entités.
J'ai une idée de la façon dont je peux contourner tout cela, et ce serait de reproduire le ParentPageID dans ma table de WebsitePage, mais cela semble vraiment violer beaucoup de principes et je vraiment tout simplement pas vouloir ajouter le mal de tête de maintenance liée à cela.
Quelqu'un at-il des idées pour accomplir ce genre de chose?
A simple DB diagram. http://images.tehone.com/screenshots/2009-08-17_013009.png
On dirait que vous avez écrit une mauvaise requête LINQ to Entities, mais sans voir réellement cette requête et le code qui l'utilise, il est difficile d'être sûr. À première vue, votre mappage de base de données semble OK tel quel. –