NHibernate:在模式导出中强制使用方括号?

发布于 2024-09-30 17:24:03 字数 479 浏览 0 评论 0原文

在为 MS SQL Server 生成 SQL 模式导出时,有没有办法告诉 NHibernate 对所有表和列名称(如 [MyColumn])使用方括号?我有一个旧数据库,它对某些列使用保留名称,并且运行使用 NH 生成的 SQL 脚本会因此引发错误。

我想避免必须为每一列单独指定这一点。

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

MsSqlConfiguration.MsSql2008.ConnectionString(connectionString)

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

除了在反引号中引用所有表名和列名之外,没有办法强制 NHibernate 在任何地方使用带引号的标识符。

Is there a way to tell NHibernate to use square brackets for all table and column names (like [MyColumn]) when generating the SQL schema export for MS SQL Server? I have a legacy database that uses reserved names for certain columns and running the SQL script generated using NH throws an error because of it.

I want to avoid having to specify this separately for each column.

UPDATE: I'm using the correct dialect:

MsSqlConfiguration.MsSql2008.ConnectionString(connectionString)

UPDATE 2: @UpTheCreek pointed me in the right direction - backticks, which helped me find the answer in the "NHibernate in Action" book (p. 76):

There is no way, apart from quoting all table and column names in backticks, to force NHibernate to use quoted identifiers everywhere.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

好久不见√ 2024-10-07 17:24:03

更简单的方法:(

SchemaMetadataUpdater.QuoteTableAndColumns(config)

在构建 SessionFactory 之前)

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

Easier approach:

SchemaMetadataUpdater.QuoteTableAndColumns(config)

(Before building SessionFactory)

That will quote all the reserved names automatically.

雪落纷纷 2024-10-07 17:24:03

在映射文件中的列名称周围使用反引号。 NH 应该用您的 db 方言的正确字符替换这些字符(在您的情况下为方括号)。

即使用:

<class name="SomeClass" table="`SomeTable`">

注意 - 它不适用于撇号。反引号位于大多数键盘的左上角。

Use backticks in your mapping files around the column names. NH should replace these with the correct character for your db dialect (in your case square brackets).

i.e. use:

<class name="SomeClass" table="`SomeTable`">

NB - It won't work with an apostrophe. The backtick is located top left on most keyboards.

黑寡妇 2024-10-07 17:24:03

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

You need to use (or write) the correct dialect for your database

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文