2011-06-08 60 views
2

我正在切換我的應用程序到Postgresql,我的模式中的所有表都是小寫,當我用NHibernate執行查詢時,它將雙引號添加到表名映射是在PascalCase中,並導致查詢失敗,告訴我該表不存在。在FluentNhibernate上禁用表名雙引號

我可以輕鬆地轉到所有映射類,並將Table方法更改爲小寫, 就像從Table(「UserAccount」)更改爲Table(「useraccount」)一樣,但我寧願不要不得不這樣做..

我想知道是否有任何方式告訴nhibernate不要雙引號查詢表,所以它會發現它正確。

我試着用這樣的:

PostgreSQLConfiguration.Standard.Raw("hbm2ddl.keywords","none").ConnectionString(x => x.Is(_connectionString)); 

,並沒有奏效。我會非常告訴NHibernate的不要擔心情況,但有麻煩postgre做到這一點

感謝

回答

4

你可以改變使用功能NHibernate的IClassConvention此行爲。我想這裏是沒有其他的方式來做到這一點根據this問題

+1

哦,男性非常感謝...是的,有一個簡單的方法來做到這一點,nhibernate已經有了預定義的表格約定,所以我只需要添加此行到會話配置: 'm.FluentMappings.AddFromAssemblyOf ().Conventions.Add(Table.Is(x => x.TableName.ToLower());' 非常感謝 – 2011-06-08 19:27:05