Oracle Entity Framework Core 8の機能

Oracleでは、このページで説明されているEF Core 8機能をサポートしています。このページでは、標準のEF Core 8機能とOracleのサポートとの違いについて説明します。

これらの各機能の標準機能の詳細は、「EF Core 8.0の新機能」Webページを参照してください。

JSON列

Oracle Databaseには、バイナリJSONストレージやJSONリレーショナル二面性など、包括的なJSONドキュメントと列のサポートが含まれています。

EF Coreは、JSON列のサポートを提供し、.NETタイプからJSONドキュメントに構築された集計のマッピングと変更を可能にします。LINQ問合せは集計に基づいて動作します。集計は、JSONに対して操作を実行するために必要な問合せ構成に翻訳されます。

Oracle EF Core 8のJSON列のサポートには、次のものが含まれます:

  • JSON列のマッピング

  • JSON列への問合せ

  • JSON列データの更新

  • 要素アクセスをJSON配列に翻訳

Oracle Database 21c以降では、JSON列がサポートされています。Oracle EF Core 8は、以前のOracle Databaseバージョンに接続すると、集計タイプをJSON列ではなくNCLOB列にマップします。

数学の翻訳

doubleやfloatなどの具体的な.NETタイプは最近、汎用数学インタフェースを取り入れました。これらには、.NETのMathおよびMathFクラスの既存の機能が反映されました。

Oracle EF Core 8は、MathおよびMathFに対して既存のOracle SQL翻訳を使用して、LINQ内でこれらの汎用数学APIへのコールを翻訳します。開発者は、Math.Sindouble.Sinなどの数学APIを選択できます。

Oracle EF Coreでは、DegreesToRadiansおよびRadiansToDegreesを除くすべての数学翻訳がサポートされています。

複合型を使用した値オブジェクト

Oracle EF Core 8は、複合型(オブジェクト型とも呼ばれる)をサポートしています。これらは、住所などの複数の値を保持するように構造化されています。

複合型は、マッピング属性"[ComplexType]"を使用するか、OnModelCreating"ComplexProperty" APIをコールして、モデルで構成する必要があります。

複合型は、それ自体の表にマップされません。かわりに、表の列にインラインで保存されます。これは、所有された型が表を共有する動作と一致します。

モデル構築 - 識別子列の最大長

Oracle EF Core 8では、階層ごとの表の継承マッピングの文字列識別子列が最大長を使用して構成されるようになりました。この長さは、定義されているすべての識別子値をカバーする最小のフィボナッチ数として計算されます。

マップされていない型のRAW SQL問合せ

Oracle EF Core 8では、マップ可能なCLR型を返し、EFモデルにその型を含めないraw SQL問合せが追加されました。マップされていない型を使用した問合せは、SqlQueryまたはSqlQueryRawを使用して実行されます。

遅延ロードの拡張機能

Oracle EF Core 8では、次の遅延ロード機能が追加されています:

  • 追跡しない問合せの遅延ロード

  • 追跡されていないエンティティからの明示的なロード

  • 特定のナビゲーションに対する遅延ロードのオプトアウト

追跡されたエンティティへのアクセス

Oracle EF Core 8では、アプリケーションで追跡されたエンティティを主キー、代替キーまたは外部キーで検索するための新しいAPIがサポートされています。これらのAPIには、エンティティ・タイプのLocalView<TEntity>を介してアクセスします。

サポートされていない機能

次の機能は、Oracle EF Core 8プロバイダではサポートされていません。

  • プリミティブ・コレクション