1

我正在使用 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

4

2 回答 2

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>

高温高压

查克

于 2013-03-11T15:25:09.873 回答
1

您需要手动创建目录/数据库。AFAIK - NH 的 SchemaExport 不会为您创建数据库/目录(或模式)。

于 2013-02-26T13:06:25.117 回答