Nhibernate 数据库对象的映射';创建';不执行,但';下降';他在执行什么?

Nhibernate 数据库对象的映射';创建';不执行,但';下降';他在执行什么?,nhibernate,nhibernate-mapping,Nhibernate,Nhibernate Mapping,我有一个使用映射语法的现有NHibernate 2.1.2.4000映射: <database-object> <create> CREATE VIEW View_Register AS ... (truncated for example) </create> <drop> DROP VIEW View_Register </drop> </database-object&

我有一个使用映射语法的现有NHibernate 2.1.2.4000映射:

<database-object>
    <create>
      CREATE VIEW View_Register AS ... (truncated for example)
    </create>
    <drop>
      DROP VIEW View_Register
    </drop>
</database-object>
上述方法中的第三个参数是“dropOnly”,它显然设置为false

在过去,我的模式被创建,并且“视图注册”被成功创建。现在,我正在运行模式生成,在模式生成的开始调用DROP,但从未调用CREATE。我已经用多个SQL分析器(包括NH分析器)证实了这一点

使用显式方言声明似乎也不起作用:

<dialect-scope name="NHibernate.Dialect.MsSql2000Dialect"/>
<dialect-scope name="NHibernate.Dialect.MsSql2005Dialect"/>
<dialect-scope name="NHibernate.Dialect.MsSql2008Dialect"/>

各位有什么想法吗

谢谢


大卫

我是个十足的白痴

我的视图/寄存器映射/视图非常好,这不是我的问题

由于重命名了表,无法在视图注册之前创建其他视图。显然,后续的数据库对象/创建调用会在前一次创建引发的任何ADO异常上中止

很高兴知道,但我觉得回答我自己的问题很愚蠢

<dialect-scope name="NHibernate.Dialect.MsSql2000Dialect"/>
<dialect-scope name="NHibernate.Dialect.MsSql2005Dialect"/>
<dialect-scope name="NHibernate.Dialect.MsSql2008Dialect"/>