Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Oracle ODP.Net z Entity Framework 6 — ORA-00955 w trybie Wybierz z widoku tabeli

Implementacja Oracle dostawcy frameworka Entity jest bardzo słaba, ale istnieje kilka sposobów, jak to zrobić.

  1. Proste, ale denerwujące - przy użyciu NULL lub własnej implementacji inicjatora bazy danych:

    Database.SetInitializer<DatabaseContext>(null);
    

lub

class DatabaseInitializer : IDatabaseInitializer<DatabaseContext>
{
    public void InitializeDatabase(DatabaseContext context)
    {
        // your implementation
    }
}

Database.SetInitializer(new DatabaseInitializer());

Ustaw inicjalizację przed pierwszym dostępem do bazy danych.

  1. Jeśli chcesz używać migracji, utwórz swoje widoki, a następnie dodaj migrację z ignorowaniem zmian, na przykład za pomocą konsoli pakietu add-migration initial -ignorechanges . Spowoduje to, że EF zignoruje niespójności między schematem i modelem bazy danych (ponieważ sprawdza tylko tabele z ALL_TABLES , a nie widoki), więc nie będzie próbował utworzyć tabeli. W implementacji Oracle EF występuje błąd polegający na tym, że jeśli początkowa migracja jest pusta, odrzuca i odtwarza __MigrationHistory tabeli, więc albo początkowa migracja musi zawierać co najmniej jedną tabelę przed dodaniem migracji widoku, albo musisz dodać tabelę później.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak mogę uzyskać wszystkie informacje o tabeli w Oracle?

  2. Łączenie kolejnych przedziałów ważności dat

  3. Oracle Identyfikuje typ danych

  4. SQL- Różnica między TIMESTAMP, DATE I TIMESTAMP WITH TIMEZONE?

  5. Zapytanie zbiorcze z pewnym logicznym połączeniem przy użyciu Oracle SQL