2010-05-06 6 views
0

Je travaille dans ASP.NET dans une application où les utilisateurs souhaitent souvent ajouter des champs ou modifier les noms de champs. J'aimerais pouvoir mettre en place un schéma xml qui est analysé et créer un modèle objet dynamique créé à partir de celui-ci, accessible dans toute l'application.Comment modifier dynamiquement des champs dans un ORM .NET

Ma réaction initiale est que ce n'est pas réaliste. Je pense qu'il y a de la flexibilité dans la nature dynamique de la question. Je pense que les gens que j'essaye de construire pour cela ne rechignent pas à recompiler.

Même si l'application recompilée, je ne sais pas comment faire abstraction de suffisamment dans mon code accéder aux données pour permettre aux utilisateurs de changer les noms de propriété, etc Comment pouvez-vous écrire LINQ lorsque les propriétés peuvent changer? En résumé, voici deux questions: 1) existe-t-il un moyen de générer dynamiquement un modèle objet de la base de données et 2) existe-t-il un moyen de faire abstraction suffisante pour que le code accédant à la base de données ne se brise pas changement?

Répondre

0

1) est-il possible de façon dynamique générer un modèle d'objet de la base de données

Oui

2) est-il possible de faire abstraction de distance suffisamment pour que le code l'accès à la base de données ne casse pas lorsque les propriétés changent?

Oui

Mais, vous ne voulez pas un ORM pour ce scénario. Vous ne pouvez même pas vouloir une base de données relationnelle, puisqu'une base de données relationnelle ne fera pas beaucoup pour vous.

Vous souhaiterez peut-être rechercher dans un document ou dans une base de données d'objets. Trouver celui qui prend en charge Linq sera difficile. Fondamentalement, vous et vos clients devez comprendre que ce n'est pas une application de base de données relationnelle traditionnelle. Vous construisez quelque chose qui a été construit avant, mais jamais vraiment d'une manière conventionnelle. Vous allez probablement innover plus souvent que de réutiliser la technologie et les modèles du commerce. Il peut s'agir d'un projet amusant si vous en appréciez les aspects novateurs ou si cela peut être un cauchemar si vos clients s'attendent à ce que la solution soit aussi simple et prête à l'emploi qu'une solution relationnelle standard.

+0

Donc vous dites qu'il faudrait analyser XML? Comment voulez-vous contourner le fait que toutes les classes dont vous avez besoin pour envelopper la source de données changeraient quand le schéma change? Cela ne nécessiterait-il pas une recompilation? – rsteckly

+0

Je n'ai rien dit à propos de l'analyse XML. Si le code autour de votre source de données est suffisamment générique, vous n'avez pas besoin de le recompiler lorsque le schéma change. Je pense que vous avez besoin de prototyper des solutions pour que vous puissiez avoir une meilleure idée des exigences techniques. –

Questions connexes