为 Oracle 数据库生成的无效查询
Invalid query generated for Oracle database
我正在使用 Entity Framework 5 和代码优先进行数据库建模和映射。当我尝试通过 API 调用执行查询时,我收到一条错误消息,指出 ORA-00942: table or view does not exist
。查看查询,它的格式似乎不是 Oracle 查询的典型格式。
我的 .config 连接字符串是
<connectionStrings>
<add name="Entities" connectionString="Data Source=development;
User ID=user;Password=password"
providerName="Oracle.DataAccess.Client" />
</connectionStrings>
在 OnModelCreating() 中,我映射如下
modelBuilder.Entity<Job>().ToTable("Table1", "schema");
我在调试器中看到的正在生成的查询不会通过 copy/paste 到 Oracle 执行。
SELECT "Extent1"."ColumnName" AS "ColumnName"
FROM "schema"."Table1" "Extent1"
我原以为我正在使用 Oracle.DataAccess.Client
提供程序这一事实会适当地生成查询。我如何说服 EF5 它应该以特定方式生成查询以与 Oracle 兼容?
查询本身是有效的,只是因为标识符名称用双引号引起来,所以名称区分大小写。
因为您可能没有为您的 table 和架构名称定义特定的大小写,所以在 EF:
中创建映射时,您可能应该只是大写(默认的 Oracle 大小写)
modelBuilder.Entity<Job>().ToTable("TABLE1", "SCHEMA"); // upper case.
我正在使用 Entity Framework 5 和代码优先进行数据库建模和映射。当我尝试通过 API 调用执行查询时,我收到一条错误消息,指出 ORA-00942: table or view does not exist
。查看查询,它的格式似乎不是 Oracle 查询的典型格式。
我的 .config 连接字符串是
<connectionStrings>
<add name="Entities" connectionString="Data Source=development;
User ID=user;Password=password"
providerName="Oracle.DataAccess.Client" />
</connectionStrings>
在 OnModelCreating() 中,我映射如下
modelBuilder.Entity<Job>().ToTable("Table1", "schema");
我在调试器中看到的正在生成的查询不会通过 copy/paste 到 Oracle 执行。
SELECT "Extent1"."ColumnName" AS "ColumnName"
FROM "schema"."Table1" "Extent1"
我原以为我正在使用 Oracle.DataAccess.Client
提供程序这一事实会适当地生成查询。我如何说服 EF5 它应该以特定方式生成查询以与 Oracle 兼容?
查询本身是有效的,只是因为标识符名称用双引号引起来,所以名称区分大小写。
因为您可能没有为您的 table 和架构名称定义特定的大小写,所以在 EF:
中创建映射时,您可能应该只是大写(默认的 Oracle 大小写)modelBuilder.Entity<Job>().ToTable("TABLE1", "SCHEMA"); // upper case.