2012-01-04 57 views
0

我正在使用s#arp lite框架構建我的應用程序。我的一張桌子叫做User。但User是一個SQL Server 2008關鍵字,所以它給我帶來了問題。Nhibernate,如何使用sql server關鍵字作爲表名?

我試圖修改代碼以支持使用SQL Server關鍵字的表,但無法使其工作。

這是代碼。

https://github.com/codai/Sharp-Lite/blob/master/Example/MyStore/app/MyStore.NHibernateProvider/Conventions.cs

第32行:我把它改成下面的代碼

classCustomizer.Table("[" + Inflector.Net.Inflector.Singularize(type.Name.ToString()) + "]"); 

回答

0

這似乎很熟悉我。 沒有任何承諾,但您可以嘗試在用戶周圍使用引號,如select * from「User」 或 爲架構所有者提供良好的支持,如select * from Mydb.User。

希望這會有所幫助。祝你好運!

+0

感謝您的幫助,使用引號的用戶,不工作嘗試。 – qinking126 2012-01-04 18:13:31

0

您還可以通過利用NHibernate的非DB特定轉義字符手動做到這一點:反引號`

在SQL Server中,你可以做「[用戶]」,但甲骨文它會有所不同。如果你使用「`用戶」,NHibernate會調整你當前使用的數據庫。

由此可以看出對這個問題:Fluent NHibernate Column Mapping with Reserved Word

相關問題