假设我们正在开发一个数据层,我们首先遵循"代码"原理。使用SchemaExport从模型生成数据库。 我想实现以下身份生成方案:
这种方法由NHibernate支持(使用流畅的)
Id(x=>x.Id).GeneratedBy.TriggerIdentity();
但是当我将SchemaExport设置为file时,既不会生成序列,也不会生成触发器。 如何告诉NHibernate发布用于创建TRIGGER和相应SEQUENCE的DDL代码?
答案 0 :(得分:2)
您应该明确告诉NH您希望它为您创建的附加对象。 据我所知,流利的NH不允许您直接配置辅助数据库对象。将项目.hbm.xml文件添加为嵌入式资源
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<database-object>
<create>
create ...
</create>
<drop>
drop ...
</drop>
</database-object>
</hibernate-mapping>
然后告诉流利的NH选择它
.Mappings(m =>
{
m.HbmMappings.AddFromAssemblyOf<...>();
...
})
SchemaExport将在导出架构时执行您的创建和删除部分。