2013-11-08 3 views
3

Я пытаюсь создать модель 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")) 

ответ

0

Видимо, вы можете запросить USER_OBJECTS против SYS схемы, так что я просто подключен мой объект, чтобы использовать эту схему для необходимые таблицы.

SELECT * FROM SYS.USER_OBJECTS 
Смежные вопросы