我正在使用Nhibernate Envers,我希望Envers将审核信息保存在单独的数据库中,以使事情更清晰/更易于维护。
我正在使用这种流畅的配置:
var enversCfg = new NHibernate.Envers.Configuration.Fluent.FluentConfiguration()
enversCfg.Audit(GetDomainEntities())
nhCfg.SetEnversProperty(ConfigurationKey.DefaultCatalog, "nhibernate_testAU")
但是当我尝试创建模式时,我得到一个HibernateException(指定的模式名称“nhibernate_testAU”要么不存在,要么您没有权限使用它。)
它的价值,我的后端是SQL Server 2005
答案 0 :(得分:2)
除了实际创建数据库之外,我还将模式指定为“dbo”。
c.SetEnversProperty(ConfigurationKey.DefaultSchema, "dbo");
c.SetEnversProperty(ConfigurationKey.DefaultCatalog, "MyCatalog_Audit");
另外,我有自己的RevistionEntity类,因此,我需要将目录和架构添加到我的hbm。
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="MyAssembly" namespace="MyNamespace">
<class name="MyRevisionEntity" table="REVINFO" catalog="MyCatalog_Audit" schema="dbo">
<id name="Id" column="MyRevisionEntityId">
<generator class="identity"/>
</id>
<property name="AuditDate"></property>
<property name="UserName"></property>
<!--modifiedEntityNames-->
<set name="ModifiedEntityNames" table="REVCHANGES" catalog="MyCatalog_Audit" schema="dbo">
<key column="REV"/>
<element column="ENTITYNAME" type="string"/>
</set>
</class>
</hibernate-mapping>
HTH
查
答案 1 :(得分:1)
您需要手动创建目录/数据库。 AFAIK - NH的SchemaExport不会为您创建数据库/目录(或模式)。