3

我有一个 linq 到实体查询(EF 4.3)

var query = from item in db.TableTest
            select item.VAL;

翻译成这个 SQL 语句

SELECT
"Extent1"."VAL" AS "VAL"
FROM "dbo"."TEST_TABLE" "Extent1"

数据库是Oracle

当我执行查询时,我收到数据表不存在的消息。问题是(“dbo”)部分。如果我删除它并直接执行此查询(不是通过 LINQ,而是通过 oracleconnection 等)

SELECT
"Extent1"."VAL" AS "VAL"
FROM "TEST_TABLE" "Extent1"

那么一切都好。我得到了价值。

如何指示 Linq To Entities 输出与 Oracle 兼容的 SQL

4

2 回答 2

2

假设您有一个实体模型,请确保您正确设置了 DDL 生成模板。

此外,您可以删除dbo数据库模式名称以匹配您的实际数据库。

在此处输入图像描述

于 2012-08-10T15:16:08.527 回答
1

询问后不久,我找到了解决问题的方法

我有这个 POCO 课

[Table("TEST_TABLE")]
public class MyEntity
{
    [Key, Column("VAL")]
    public string key_valye { get; set; }
}

生成的 sql 注入了“dbo”。当我将表属性更改为

 [Table("TEST_TABLE", Schema="ATT")]

这会生成“ATT”。“TEST_TABLE”,这实际上是正确的 sql。

于 2012-08-10T15:24:23.147 回答