2016-08-14 70 views
0

我是新的與NHibernate映射表和Ii有一個奇怪的問題。我收到一個名爲GenericADOException的異常。我說它不能加載實體,並給我這個查詢無法在NHibernate中映射表。 GenericADOException

[SQL: SELECT user0_.id_user as id1_2_0_, user0_.username as username2_0_, user0_.password as password2_0_, user0_.name as name2_0_, user0_.surname as surname2_0_ 
     FROM dbo.User user0_ 
     WHERE user0_.id_user=?] 

但它似乎沒事,表名是​​完全相同的,所有列都是正確的。如果我嘗試在管理工作室中執行查詢,則會拋出:

關鍵字'User'附近的語法不正確。

我無法弄清楚這一點。謝謝你的幫助。

回答

0

用戶是在SqlServer中保留的。您需要將NHibernate配置爲AutoQuote表和列。

這是一個需要設置

<property name="hbm2ddl.keywords">auto-quote</property> 

這也可以使用映射實現通過代碼屬性:

 Configure.DataBaseIntegration(db => 
             { 
              db.Dialect<MsSql2008Dialect>(); 
              db.Driver<SqlClientDriver>(); 
              db.KeywordsAutoImport = Hbm2DDLKeyWords.AutoQuote; 
              db.IsolationLevel = IsolationLevel.ReadCommitted; 
              db.ConnectionString = _connectionString; 
              db.BatchSize = 20; 
              db.Timeout = 10; 
              db.HqlToSqlSubstitutions = "true 1, false 0, yes 'Y', no 'N'"; 
             });