使用括号而不是引号配置Entity Framework Core来识别标识符的方式?

huangapple go评论68阅读模式
英文:

A way to configure Entity Framework Core to use brackets instead of quotes for identifiers?

问题

我试图使用EF Core 7和Oracle.EntityFrameworkCore提供程序连接到Oracle数据库。

显然,所有查询中的标识符都是使用双引号引用的(例如,"Schema"."Table"),这在Oracle中意味着它们是区分大小写的。对于我正在进行的特定项目,我更喜欢使用方括号(例如,[Schema].[Table]),这是不区分大小写的。

是否有一种配置方式可以实现这一点?

英文:

I'm trying to connect to an Oracle database using EF Core 7 and the Oracle.EntityFrameworkCore provider.

Apparently, identifiers in all the queries are quoted using double quotes (e.g. "Schema"."Table"), which on Oracle means that they are case-sensitive. For this specific project I'm working on, I'd prefer to use brackets (e.g. [Schema].[Table]), which are case-insensitive.

Is there a way to configure this?

答案1

得分: 2

Oracle RDBMS不支持括号语法,因此生成括号将导致在数据库解析时生成无效查询。

您可以使用带引号的标识符 "schema"."table",它们区分大小写,或者不带引号的标识符 schema.table,它们实际上是不区分大小写的,因为SQL引擎会隐式将它们转换为大写(所以与使用 "SCHEMA"."TABLE" 相同)。

有关标识符和命名规则的更多信息,您可以查看Database Object Names and Qualifiers 文档。

英文:

Oracle RDBMS does not support the bracket syntax so generating brackets would result in invalid queries when they are parsed by the database.

You either use quoted identifiers "schema"."table", which are case-senstive, or unquoted identifiers schema.table, which are effectively case-insensitive as the SQL engine will implicitly convert them to upper-case (so it is the same as using "SCHEMA"."TABLE").

For more information on identifiers and naming rules you can look at the Database Object Names and Qualifiers documentation.

huangapple
  • 本文由 发表于 2023年3月9日 18:00:06
  • 转载请务必保留本文链接:https://go.coder-hub.com/75683007.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定