2009-04-16 7 views
0

Je travaille sur une application qui a un mécanisme de publication de données que j'ai conçu & implémenté. Il permet à une instance principale de l'application de transmettre des données à de nombreuses instances d'abonnés. Ceci est implémenté en chargeant les données du maître dans un ensemble de tables d'importation temporaires qui ont le même schéma exact sur l'abonné. Le processus de fusion utilise ces tables d'importation pour faire son travail.NHibernate - Mapper la même entité à de nombreuses tables

Toute cette publication fonctionne bien. Il est effectué en dehors de NHibernate en utilisant ADO.NET pour le chargement par lots, des ensembles de procédures stockées pour la fusion & de fusion (ils sont générés automatiquement par un outil personnalisé). En outre, nous avons seulement un lien HTTP disponible entre master/abonné pour télécharger les données; nous ne pouvons pas nous connecter directement au serveur SQL maître.

Le problème auquel je suis confronté est de montrer visuellement le diff à l'utilisateur avant qu'ils ne fusionnent réellement les nouvelles données. Dans l'application, j'aimerais que NHibernate charge directement notre objet métier à partir de ces tables d'importation temporaires. Pouvons-nous faire cela? Sans avoir à gérer deux ensembles de fichiers de mapping presque identiques?

Dans notre dernière version, nous construisions des objets métier en utilisant du code personnalisé qui se chargerait à partir de ces tables d'importation. Il ne chargerait que des propriétés simples, et non des relations de manipulation. Cela fait perdre beaucoup de temps du point de vue du codage/de la maintenance.

Répondre

1

Essayez-vous de faire quelque chose like this où vous avez besoin de changer dynamiquement les noms de table? Vous pouvez également regarder Fluent NHibernate pour une solution.

Une autre possibilité serait d'avoir les tables temporaires dans une base de données séparée et de simplement changer la chaîne de connexion.

Questions connexes