2010-10-27 29 views
0

J'ai démarré un projet de formulaires Web en utilisant nHibernate et objectdatasources; Cependant, j'ai appris qu'il y a certaines limites que je comprends mais que je ne sais pas gérer. Ces limitations incluent 1) objectdatasources nécessite des constructeurs sans paramètre et 2) les propriétés de l'objet métier ne peuvent pas être en lecture seule. Le problème que j'ai est qu'une classe dans ma couche de gestion définit une propriété qui ne devrait jamais changer et je voudrais m'assurer que cela n'arrive jamais. Je voudrais définir cette propriété lorsque l'objet est créé, mais rendre la propriété en lecture seule afin que les utilisateurs ne puissent pas le définir ultérieurement. Je ne suis pas sûr que ce soit pertinent pour le problème, mais j'utilise également une classe de référentiel. Je suppose que je pourrais simplement faire la propriété lire/écrire, mais je pense que la couche de gestion devrait appliquer la règle de ne jamais changer la propriété. Est-il possible d'utiliser objectdatasources sans assouplir ma règle métier qu'une propriété doit être en lecture seule. Si je ne peux pas utiliser objectdatasources, existe-t-il une autre meilleure pratique qui n'inclut pas la copie de la logique de création d'objets, en définissant leurs propriétés en fonction des valeurs de formulaire, puis en enregistrant?Quelle est la meilleure pratique lorsque vous avez des propriétés en lecture seule et que vous ne pouvez pas utiliser objectdatasource?

Merci pour tout renseignement sur ce problème. Je suis sûr que les gens ont rencontré cela dans le passé, donc je cherche juste une direction dans la meilleure utilisation des sources de données pour un site de formulaires Web. De plus, toute référence à des livres ou à des articles traitant de problèmes moins typiques serait utile. Il semble que tout ce que je cherchais à vous a la construction d'écrans CRUD ...

  • Sean

Répondre

0

Vous pouvez mapper le NHibernate aux champs. Ceci peut aider NHibernate : map to fields or properties?

De cette façon, vous devriez pouvoir avoir des propriétés RO.

+0

Oui, cela fonctionne bien pour nHibernate. Cependant, je ne pense pas que nHibernate est le problème ici. Il semble que ObjectDataSource n'autorise pas la définition de propriétés en lecture seule sur l'objet métier. Donc, j'espérais que quelqu'un pourrait m'aider avec une meilleure pratique pour gérer cela. Sinon, je dois soit relâcher ma règle de gestion des propriétés en lecture seule, soit arrêter complètement d'utiliser ObjectDataSource. Il me semble étrange que ce n'est pas un plus gros problème pour les personnes utilisant ObjectDataSources, ou peut-être que les gens ne les utilisent pas vraiment beaucoup? – Sean