sql >> Database >  >> RDS >> Oracle

Oracle ODP.Net met Entity Framework 6 - ORA-00955 op Selecteren uit tabelweergave

De Oracle-implementatie van de Entity Framework-provider is erg slecht, maar er zijn enkele manieren om dit te laten werken.

  1. Eenvoudig maar vervelend - NULL gebruiken of een eigen database-initialisatie-implementatie gebruiken:

    Database.SetInitializer<DatabaseContext>(null);
    

of

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

Database.SetInitializer(new DatabaseInitializer());

Stel de initialisatie in voor de eerste toegang tot uw database.

  1. Als u migraties wilt gebruiken, maakt u uw weergaven en voegt u vervolgens de migratie toe met het negeren van wijzigingen, bijvoorbeeld met behulp van de pakketconsole add-migration initial -ignorechanges . Hierdoor negeert EF de inconsistenties tussen het DB-schema en het model (omdat het alleen tabellen controleert van ALL_TABLES , niet views), dus het zal niet proberen een tabel te maken. Er is een fout in de Oracle EF-implementatie dat als de initiële migratie leeg is, deze verdwijnt en de __MigrationHistory opnieuw wordt aangemaakt table, dus ofwel moet uw initiële migratie minstens één tabel bevatten voordat u de viewmigratie toevoegt, ofwel moet u daarna een tabel toevoegen.


  1. Hoe milliseconden tot nu toe te converteren in SQLite

  2. Groeperen op clausule in mySQL en postgreSQL, waarom de fout in postgreSQL?

  3. GRANT met wildcard voor databasenaam in MySQL?

  4. Mysql kan niet meer dan 1 zoekopdracht tegelijk uitvoeren