首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >NHibernate:强制模式导出中的方括号?

NHibernate:强制模式导出中的方括号?
EN

Stack Overflow用户
提问于 2010-11-05 09:08:04
回答 3查看 2.2K关注 0票数 7

在为MS生成schema导出时,是否有一种方法可以告诉NHibernate对所有表和列名(如[MyColumn])使用方括号?我有一个遗留数据库,它使用某些列的保留名称,并运行使用NH生成的SQL脚本,因此引发错误。

我希望避免为每一列分别指定这一项。

更新:我使用的是正确的方言:

代码语言:javascript
代码运行次数:0
运行
复制
MsSqlConfiguration.MsSql2008.ConnectionString(connectionString)

更新2:@UpTheCreek为我指明了正确的方向--后退,这帮助我在"NHibernate in Action“一书中找到了答案(第76页):

除了在后台引用所有表名和列名之外,没有办法强迫NHibernate在任何地方使用引用的标识符。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-11-05 12:43:57

比较容易的办法:

代码语言:javascript
代码运行次数:0
运行
复制
SchemaMetadataUpdater.QuoteTableAndColumns(config)

(在建造SessionFactory之前)

它将自动引用所有保留的名称。

票数 12
EN

Stack Overflow用户

发布于 2010-11-05 09:21:00

在列名周围的映射文件中使用backticks。NH应该用您的db方言的正确字符(在您的例子中是方括号)替换这些字符。

即使用:

代码语言:javascript
代码运行次数:0
运行
复制
<class name="SomeClass" table="`SomeTable`">

注-它不能用撇号。背勾位于大多数键盘的左上角。

票数 2
EN

Stack Overflow用户

发布于 2010-11-05 09:11:27

您需要为数据库使用(或编写)正确的方言。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4104563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档