我正在使用s#arp lite框架构建我的应用程序。我的一个表名为User
。但是User
是一个SQL Server 2008关键字,因此它给我带来了问题。
我尝试修改代码以使用SQL Server关键字支持表格,但不能让它工作。
这是代码。
第32行:我将其更改为以下代码
classCustomizer.Table("[" + Inflector.Net.Inflector.Singularize(type.Name.ToString()) + "]");
答案 0 :(得分:3)
我已经在邮件列表上回答了这个问题,在这里发帖回答让其他人轻松找到(以及要点:)
添加: db.KeywordsAutoImport = Hbm2DDLKeyWords.AutoQuote;
应该做的伎俩
答案 1 :(得分:0)
这对我来说似乎很模糊。 没有承诺,但您可以尝试在User周围使用引号,例如select * from“User” 要么 很好地提供架构所有者,例如从Mydb.User中选择*。
希望这会有所帮助。祝你好运!
答案 2 :(得分:0)
您也可以使用NHibernate的非DB特定转义字符手动执行此操作:反引号`
在SQL Server中,您可以执行“[User]”,但在Oracle中它会有所不同。如果使用“`User”,NHibernate会将其调整为您当前使用的数据库。
这可以在这个问题上看到:Fluent NHibernate Column Mapping with Reserved Word