J'utilise DDD et NHibernate pour conserver mon objet domaine. Dans ma base de données, chaque table liée à une entité comporte quatre colonnes supplémentaires (CreatedBy, UpdatedBy, CreatedDate, UpdatedDate) utilisées pour le suivi d'audit. J'utilise le modèle de référentiel qui permet uniquement d'enregistrer les racines agrégées. Lorsque NHibernate tente de sauvegarder les entités sur la racine agrégée, j'obtiens une erreur SQL DateTime car les propriétés d'audit des entités ne sont pas définies. Est-il possible dans NHibernate de définir des propriétés sur des objets juste avant la sauvegarde?NHibernate définir automatiquement les propriétés lors de la sauvegarde
Voici un petit exemple. J'ai un objet Order qui est la racine agrégée. J'ai aussi des objets OrderNote qui sont des enfants de la commande. Lorsque j'ajoute un OrderNote à l'ordre, puis que l'ordre est enregistré, une exception est levée, car CreatedDate/UpdatedDate est défini sur DateTime.MinValue, ce qui provoque un débordement SQL DateTime. Comme ces colonnes d'audit font partie de la persistance et ne sont pas liées au domaine du problème, je ne souhaite pas que la racine de l'agrégat Order définisse ces propriétés lorsque la note est ajoutée. Les colonnes/propriétés d'audit ne doivent être connues que par le framework de persistance et non par le domaine. Je voudrais pouvoir dire à NHibernate de définir ces propriétés lors de l'enregistrement ou de la mise à jour. Y a-t-il un moyen de faire cela?
Excellent. C'est exactement ce que je cherche. Je suis nouveau à NHibernate et je ne connaissais pas cette fonctionnalité. J'ai une interface IAuditable implémentée avec des propriétés protégées afin que le domaine ne puisse pas les voir. – awilinsk