2009-11-02 4 views
2

Je souhaite donner aux utilisateurs la possibilité d'ajouter dynamiquement de nouvelles colonnes à l'exécution. J'utilise Entity framework v1 ...Entité dynamique dans EF1/changement de modèle dans runtime/ajout dynamique de propriété

J'ai réussi à lire en XML puis à changer les fichiers ssdl, csdl et msl et à construire un nouvel espace de travail et un nouveau contexte d'objet ... Mais le problème c'est quand j'ajoute dynamiquement nouvelles colonnes dans le modèle EF l'objet sous-jacent n'est pas changé, bien sûr. Comment obtenir les données du modèle sans avoir l'entité concrète?

Type anonyme ou DBDataRecord serait très bien ... Ou même un nouveau type créé à l'exécution ...

Une idée?

Répondre

0

En v1, vous devez générer un nouvel assemblage. Cela nécessiterait également la redistribution d'EdmGen. Je ne sais pas si c'est légal. Dans EF v4, vous pouvez probablement combiner les types dynamiques C# avec la modélisation uniquement par code et trouver une solution assez lisse à votre problème.

+0

Hmmm ne m'a jamais traversé l'esprit que la distribution EdmGen est pas légal ... espérons que vous n'êtes pas bon ;-) EdmGen2.exe a source disponible et en regardant rapidement à son permis, je dirais que ce n'est pas problème de le distribuer .. Oui, vous avez raison ... EF v4 serait super ... mais je ne peux pas l'utiliser ... :( Quoi qu'il en soit, je regardais toute solution que je peux faire à travers le code sans avoir besoin de nouvelles DLL .. –

+0

Bien que je n'obtienne pas de réponse j'espérais, je vais marquer cette réponse comme la réponse, je vais essayer d'utiliser edmGen2 et je verrai ce qui va se passer. –

1

Modification du modèle d'entité CSDL/SSDL ne modifie pas les types, car ils sont utilisés pour générer les types au moment du design. Je ne pense pas qu'il existe un moyen pratique de modifier ces types à l'exécution pour refléter vos modifications au modèle.

Questions connexes