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