我正在使用舊數據庫,並試圖將char轉換爲int以進行多對一映射。我知道這不是一個好主意,但是我堅持使用架構。多對一公式將表名添加到SQL關鍵字
我試圖用下面的映射做到這一點,但發現NHibernate將表名alias添加到關鍵字SQL_INTEGER
。
<many-to-one name="host" formula="CONVERT(alloc_code, SQL_INTEGER)" />
生成SQL
CONVERT(hostplacem0_.alloc_code, hostplacem0_.SQL_INTEGER)
我發現this職位,但解決的辦法是不是一個可行的一個我的情況。
需要注意的一件事是,我們已經爲我們使用的DBMS(Sybase Advantage數據庫服務器)推出了自己的方言,因爲NHibernate不支持開箱即用。因此,我可以選擇修改此以解決此問題。我已經嘗試將SQL_INTEGER
註冊爲關鍵字,但這沒有幫助。
隨機想法,但您可以嘗試在同一個dialect文件中的RegisterFunctions,例如https://github.com/nhibernate/nhibernate-core/blob/master/src/NHibernate/Dialect/MsSql2000Dialect.cs 。 str聲明看起來很有趣 – jbl 2013-03-19 09:01:57
感謝您的建議@jbl。事實證明,這是一個區分大小寫的問題。請參閱下面的答案。 – mickfold 2013-03-19 09:53:19
thx爲後續行動 – jbl 2013-03-19 09:55:04