gpt4 book ai didi

nhibernate - 如何使用 NHibernate 模式导出生成 Oracle 触发器?

转载 作者:行者123 更新时间:2023-12-03 23:48:21 24 4
gpt4 key购买 nike

假设我们正在开发一个数据层,并且我们遵循“代码优先”的原则。数据库是使用 SchemaExport 从模型生成的。我想实现以下身份生成场景:

  • 每个表都有自己的序列和触发器
  • 触发器是“for each row”类型,并在数据插入表时插入下一个序列值。

NHibernate 通过使用(流利的)支持这种方法

Id(x=>x.Id).GeneratedBy.TriggerIdentity();

但是当我对文件执行 SchemaExport 时,既没有生成序列,也没有生成触发器。如何告诉 NHibernate 发出 DDL 代码来创建 TRIGGER 和相应的 SEQUENCE?

最佳答案

您应该明确告诉 NH 您希望它为您创建哪些附加对象。据我所知,fluent 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>

然后告诉 fluent NH 来选择它

.Mappings(m =>
{
m.HbmMappings.AddFromAssemblyOf<...>();
...
})

SchemaExport 将在导出架构时执行您的创建和删除部分。

关于nhibernate - 如何使用 NHibernate 模式导出生成 Oracle 触发器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9317632/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com