2011-05-12 54 views
0

我已使用該映射語法的現有的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> 

當數據庫模式被創建,我使用:

new SchemaExport(_configuration).Execute(true, true, false, aSession.Connection, tw); 

的方法中的第三個參數是上述' dropOnly「,這顯然設置爲false。

過去,我的模式已經創建,'View_Register'成功創建。現在,我重新運行模式生成,並在架構生成開始時調用DROP,但CREATE從不調用。我已經用多個SQL分析器(包括NH分析器)證實了這一點。

使用顯式聲明的話似乎沒有工作,要麼:

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

任何想法鄉親?

感謝,

大衛

回答

2

我是一個完整的白癡...

我View_Register映射/視圖完全罰款,是不是我的問題。

由於重命名的表格,不同的視圖無法創建BEFORE View_Register。顯然,隨後的數據庫對象/創建調用在由前一個創建拋出的任何ADO異常中被中止。

很高興知道,但我對回答自己的問題感到無聊!