sql >> Databáze >  >> RDS >> Oracle

Oracle ODP.Net s Entity Framework 6 - ORA-00955 v zobrazení Výběr z tabulky

Oracle implementace poskytovatele Entity frameworku je velmi špatná, ale existuje několik způsobů, jak to zajistit.

  1. Jednoduché, ale nepříjemné - použití NULL nebo vlastní implementace inicializátoru databáze:

    Database.SetInitializer<DatabaseContext>(null);
    

nebo

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

Database.SetInitializer(new DatabaseInitializer());

Nastavte inicializaci před prvním přístupem k vaší databázi.

  1. Pokud chcete použít migrace, vytvořte si zobrazení a poté přidejte migraci s ignorováním změn, například pomocí konzoly balíčku add-migration initial -ignorechanges . To způsobí, že EF bude ignorovat nekonzistence mezi schématem DB a modelem (protože kontroluje pouze tabulky z ALL_TABLES , nikoli zobrazení), takže se nepokusí vytvořit tabulku. V implementaci Oracle EF je chyba, že pokud je počáteční migrace prázdná, zahodí a znovu vytvoří __MigrationHistory tabulkou, takže buď vaše počáteční migrace musí obsahovat alespoň jednu tabulku před přidáním migrace zobrazení, nebo musíte tabulku přidat až poté.


  1. mysql SELECT s preferencí podmínky

  2. Jak vygenerovat další číslo automatického přírůstku v mysql pomocí php?

  3. MySQL ORDER BY DESC je rychlé, ale ASC je velmi pomalé

  4. Profilování dotazů šetrné k šířce pásma pro Azure SQL Database