当前位置:  开发笔记 > Android > 正文

NHibernate IInterceptor实现(向原始域类没有的DB表添加属性)

如何解决《NHibernateIInterceptor实现(向原始域类没有的DB表添加属性)》经验,为你挑选了0个好方法。

当通过NHibernate更新/插入实体而不扩展具有特殊属性的域类时,如何设置一些特殊的列值?

例如:在我的情况下,我希望获得对象,并在更新/插入db之前,通过使用IInterceptor向该对象添加一些其他信息(如用户ID或计算机名称).换句话说,我想在DB Table中添加几列而不在原始对象的类中指定新属性.Object.hbm.xml在这种情况下,我是否必须配置/更改/添加到我的或App.config?

问题是我无法更改我的原始对象和基类.所以我必须弄清楚是否有可能在不更改原始对象的情况下向DB表添加信息(甚至没有从任何基类继承)

例:

原始对象有: FirstName ,LastName,Birthday,Address properties

Customer.hbm.xml 具有:





我的Interceptor类有方法:

public bool OnSave(object entity, object id, object[] state, string[] propertyNames, NHibernate.Type.IType[] types)

在那一刻甚至可能在保存之前我必须在DB Customer表中添加额外的2列(例如计算机名和用户名),propertyNames[]并且state[]参数从一开始就没有它们,因此应该在运行中完成.

MY DB Customer表包含我上面描述的所有列.

谢谢.

推荐阅读
Chloemw
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有