假设我们正在开发一个数据层,我们遵循“代码优先”原则 . 使用SchemaExport从模型生成数据库 . 我想实现以下身份生成方案:
-
每个表都有自己的序列和触发器
-
触发器的类型为"for each row",并在将数据插入表时插入下一个序列值 .
NHibernate通过使用(流利的)支持这种方法
Id(x=>x.Id).GeneratedBy.TriggerIdentity();
但是当我将SchemaExport设置为文件时,既不会生成序列,也不会生成触发器 . 如何告诉NHibernate发布用于创建TRIGGER和相应SEQUENCE的DDL代码?
1 回答
您应该明确告诉NH您希望它为您创建的附加对象 . 据我所知,流利的NH不允许您直接配置辅助数据库对象 . 将项目.hbm.xml文件添加到项目中作为嵌入式资源
然后告诉流利的NH选择它
SchemaExport将在导出模式时执行创建和删除部分 .