C# 使用保留字作为实体名称

C# 使用保留字作为实体名称,c#,sql-server,nhibernate,C#,Sql Server,Nhibernate,我使用带有命名约定的NHibernate代码映射来映射实体。现在我有以下错误 SQL error - Incorrect syntax near the keyword 'User'.: 我知道这是保留字,我想知道如何在按约定映射时使用此名称(用户)作为实体名称 您可以将其用方括号括起来使用,因为它是SQL SERVER中的保留关键字: [用户] 在SQL Server中,user是一个单词。如果需要将其用作列名,请在其周围加上括号。这适用于所有与关键字冲突的表名和其他用户定义的名称 例如:

我使用带有命名约定的NHibernate代码映射来映射实体。现在我有以下错误

SQL error - Incorrect syntax near the keyword 'User'.:

我知道这是保留字,我想知道如何在按约定映射时使用此名称(用户)作为实体名称

您可以将其用方括号括起来使用,因为它是SQL SERVER中的保留关键字:

[用户]

在SQL Server中,
user
是一个单词。如果需要将其用作列名,请在其周围加上括号。这适用于所有与关键字冲突的表名和其他用户定义的名称

例如:

Select * from tbl where [User] = 'xyz'

如果括号不起作用,请尝试以下操作:

"`User`"

在NHibernate中处理此问题的正确方法是使用

只需将表名或列名用反勾号括起来,
方言
将为您的数据库使用正确的符号


为了简化操作,NHibernate提供了一个配置设置,可以为您执行此操作:在xml配置文件中设置
hbm2ddl.keywords=“auto quote”
,或者在使用loquacious时调用
AutoQuoteKeywords()

是否发布您的查询?如果
User
是一个字段的名称,您应该在[]中输入。虽然这样做有效,但在NHibernate中不推荐这样做。那么推荐的方法是什么?