Я пытаюсь создать модель Entity Framework на основе USER_OBJECTS
, чтобы я мог запросить инвентаризацию пакетов &. Похоже, что вызовы USER_OBJECTS
должны быть без схемы, но я не могу определить способ настройки entity/dbcontext для создания инструкции без схемы.Возникли проблемы с запросом USER_OBJECTS в Oracle/ODP.NET
1) Есть ли специальный префикс схемы, который можно назвать USER_OBJECTS
?
2) Если нет, то как я могу заставить Entity Framework отказаться от префикса схемы из сгенерированных операторов?
Я обнаружил, что если я не предоставил схему, она по умолчанию будет выполняться пользователем, и я получаю удобную ошибку ORA-00942: table or view does not exist
.
Если я предоставляю пустую строку, по умолчанию она равна dbo
, что совсем не полезно в Oracle.
Пустая строка для схемы метода
Protected Overrides Sub OnModelCreating(modelBuilder As DbModelBuilder)
... CODE TRUNCATED FOR READABILITY ...
Dim entityConfig = entityMethodGeneric.Invoke(modelBuilder, Nothing)
Dim toTableMethod = entityConfig.[GetType]().GetMethod("ToTable", New Type() {GetType(String), GetType(String)})
toTableMethod.Invoke(entityConfig, New Object() {"USER_OBJECTS", ""})
MyBase.OnModelCreating(modelBuilder)
End Sub
Урожайность
SELECT "Extent1"."OBJECT_ID" AS "OBJECT_ID"
, "Extent1"."OBJECT_TYPE" AS "OBJECT_TYPE"
, "Extent1"."OBJECT_NAME" AS "OBJECT_NAME"
, "Extent1"."STATUS" AS "STATUS"
FROM "dbo"."USER_OBJECTS" "Extent1"
WHERE (("Extent1"."OBJECT_NAME" = :p__linq__0) AND ('PACKAGE' = "Extent1"."OBJECT_TYPE"))