sql >> データベース >  >> RDS >> Oracle

Oracle ODP.Net With Entity Framework 6-ORA-00955 on Select from Table View

    Entity FrameworkプロバイダーのOracle実装は非常に貧弱ですが、これを機能させる方法はいくつかあります。

    1. 単純だが煩わしい-NULLまたは独自のデータベース初期化子の実装を使用する:

      Database.SetInitializer<DatabaseContext>(null);
      

    または

    class DatabaseInitializer : IDatabaseInitializer<DatabaseContext>
    {
        public void InitializeDatabase(DatabaseContext context)
        {
            // your implementation
        }
    }
    
    Database.SetInitializer(new DatabaseInitializer());
    

    データベースに最初にアクセスする前に初期化を設定します。

    1. 移行を使用する場合は、ビューを作成してから、変更を無視して移行を追加します。たとえば、パッケージコンソールのadd-migration initial -ignorechangesを使用します。 。これにより、EFはDBスキーマとモデル間の不整合を無視します(ALL_TABLESのテーブルのみをチェックするため) 、ビューではない)なので、テーブルを作成しようとはしません。 Oracle EFの実装にはバグがあり、最初の移行が空の場合、__MigrationHistoryが削除されて再作成されます。 したがって、ビューの移行を追加する前に、最初の移行に少なくとも1つのテーブルが含まれている必要があるか、後でテーブルを追加する必要があります。


    1. 複数のデータベースでのSQLクエリ

    2. PostgreSQLおよびTimescaleDB用にSELinuxを構成する方法

    3. 日付と時刻で降順で並べ替えますか?

    4. SQL Server 2008で画像データ型をvarcharに変換します