Entity Framework отправляет неверный SQL в базу данных Oracle - PullRequest
1 голос
/ 23 сентября 2019

Я создал простой класс для Entity Framework для запроса таблицы в Oracle.Вход в систему работает, и Oracle, похоже, находит нужную таблицу.

Но Entity Framework отправляет недопустимый SQL в базу данных.Я думаю, что это синтаксис T-SQL, но не синтаксис Oracle.

Из файла трассировки

2019-09-23 16:01:08.225742 TID:1   (PUB) (ENT) OracleCommandImpl.CheckForReturningClause() Cmd Text (SQL):  HasReturnClauseSearchKey : SELECT 
"c"."Id" AS "Id", 
"c"."Name" AS "Name"
FROM "DV"."TESTTABLE" "c"
WHERE (ROWNUM <= (1) )

, и я совершенно уверен, что Oracle не знает здесь "AS".

Результатом является эта ошибка.

не удалось в течение 17 мс с ошибкой: ORA-00904: "c". "Имя": неверный идентификатор

Что такоеЯ делаю неправильно?

[EDIT]

Мой DbContext:

namespace Database2
{
    public class TestContext : DbContext
    {
        public DbSet<TestTable> TestTable { get; set; }

        public TestContext() : base("FOOTEST")
        {
            Database.SetInitializer<TestContext>(null);
        }
    }
}

Мой App.config

  <connectionStrings>
    <add name="FOOTEST" providerName="Oracle.ManagedDataAccess.Client"
      connectionString="User Id=XX;Password=YYYY;Data Source=FOOTEST.WORLD"/>
  </connectionStrings>

Моя таблица

Create Table DV.TESTTABLE
  (
  ID NUMBER(22, 0) NOT NULL,
  NAME VARCHAR2(64) NOT NULL,
  CONSTRAINT id_pk PRIMARY KEY (ID)
  )

Мой стол класс

namespace Database2
{
    [Table("DV.TESTTABLE")]
    public class TestTable
    {
        [Key]
        public int Id { get; set; }
        public string Name { get; set; }
    }
}

1 Ответ

0 голосов
/ 23 сентября 2019

Благодаря Брэдбери9.Это была чувствительность к регистру.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...