使用NHibernate在列名中使用SQL方括号

时间:2013-11-18 10:59:49

标签: c# sql nhibernate

我在数据库中有一个名为“:

的列

成才[0] .else.thing

因为有'。'列名中的字符我必须在hbm.xml文件中用括号括起来,如下所示:

[成才[0] .else.thing]

问题是不允许此查询。

产生以下错误。

Message = "ERROR [42000] [DataDirect][OpenAccess ODBC]Syntax error in SQL statement.    syntax error line 1 at or after token <thing>."

我的问题是如何绕过列名称中的括号?

我试过了: [成才[0] .else.thing]

[成才[0] .else.thing]]

[“someting [0] .else.thing”]

“[someting [0] .else.thing]”

'[成才[0] .else.thing]'

修改

[东西[0]]。else.thing]

'某物[0] .else.thing'

2 个答案:

答案 0 :(得分:1)

您可以使用反引号

包装列名
`something[0].else.thing`

(不确定它是否有效,但我不知道如何在没有突出显示内容的情况下将注释添加到注释中)

答案 1 :(得分:1)

您可以尝试"someting[0].else.thing",(或xml中的&quot;someting[0].else.thing&quot;

参见例如SQLite: escaping table and column names correctly

  

SQlite支持`与MySQL和[]的兼容性   与MS Access和SQL Server的兼容性。 但它也支持   双引号,这是标准的SQL