2010-04-28 4 views
1

droite ... Appel à tous les experts Entity Framework ...ADO.Net Entity Framework entité personnalisée Question

J'ai une table appelée Bob dans ma base, mon modèle EF contient une correspondance exacte/définition de cela. J'ai aussi une table appelée Jim qui est également mappée sur mon modèle d'entité. Bob peut avoir plusieurs Jim et cette relation est appliquée par des contraintes de clés étrangères comme il se doit. Donc, la relation ici est rosey. Cependant, j'ai également créé ma propre entité dans mon modèle EF appelé JimSnapshot. Cette entité ressemble exactement à l'entité Jim. Lorsque Bob est créé, un instantané de Jim est pris à ce moment et stocké en XML très plat dans une colonne appelée JimSnapshotXML dans Bob. Ce que je veux faire, c'est que l'entité JimSnapshot soit liée à Bob et que je remplace la propriété JimSnapshotXML par une version peuplée de l'entité JimSnapshot. Ou au moins avoir l'entité JimSnapshot accessible depuis Bob et l'attribut JimSnapshotXML caché.

Est-ce possible? Comment puis-je le faire? Est-ce que cela a du sens? Essentiellement, je vise à pouvoir accéder à ce qui précède comme suit (C#);

var snapshot = Bob.JimSnapshot; 
var jim = Bob.Jim; 
+0

Peut-être envisager de reformuler. Je ne suis toujours pas. – Nix

+0

Une meilleure description? ... Dans ma base de données j'ai une table appelée TableA. L'une des colonnes de TableA (TableBSnapshotXML) stocke un instantané d'une ligne de TableB en tant que XML. Le XML est très plat. Dans mon modèle Entity Framework, j'ai modélisé TableA et TableB exactement comme elles sont dans la base de données (modèle généré automatiquement). J'ai également ajouté une copie de TableB et l'ai appelée TableBSnapshot. Lorsque l'enregistrement de la TableA est renvoyé, je souhaite réellement que l'attribut TableBSnapshotXML crée un objet TableBSnapshot en tant que propriété de navigation afin que j'aie un objet réel plutôt que le XML brut. – Carl

Répondre

0

Vous pouvez essayer de créer une propriété d'emballage dans la classe partielle extension du code de l'entité qui va créer une instance de la JimSnapshot dans getter et écrire le code XML correct dans setter.
Cependant, il y aura des problèmes avec le suivi des modifications, vous devrez affecter cette propriété explicitement ou gérer l'événement SavingChanges pour enregistrer les modifications apportées au XML.

+0

Excellent. Je vous remercie. Pourriez-vous élaborer un peu plus pour m'aider dans la bonne direction? Très apprécié. – Carl

Questions connexes