Oracle Entity Framework Core 10の機能

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

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

空間データ – プレビュー中

Oracleデータベースに、物理的な場所とオブジェクトの形状を表す空間データを格納できます。ODP.NETにより、Oracle空間データをネイティブに操作できます。

NetTopologySuite空間ライブラリにより、EF Coreのデータベース空間データ型をマップします。Oracle EF Core 10以降、Oracleデータベースの空間型は、新しいOracle EF Core NetTopologySuiteサポートを使用してアクセスおよびマップできます。

この機能は、現在プレビュー中であり、NuGetギャラリにあるOracle.EntityFrameworkCore.NetTopologySuiteパッケージで入手できます。

LeftJoin演算子とRightJoin演算子

Oracle EF Core 10では、新しい.NET 10 LINQ演算子であるLeftJoinとRightJoinが完全にサポートされており、それにより、複雑なJOIN文を簡単に記述できるようになっています。
  • LeftJoin: LEFT JOIN問合せの記述を簡略化します。
  • RightJoin: 2番目のコレクションからのすべてのデータと1番目のコレクションからの一致データのみを保持するRIGHT JOIN問合せを簡略化します。

リレーショナルJSON列のExecuteUpdate

以前は、ExecuteUpdateメソッドではJSON列の更新は許可されていませんでした。Oracle EF Core 10では、ExecuteUpdateメソッド内でのJSON列およびプロパティの参照がサポートされています。これにより、Oracle Databaseでの、ドキュメント・モデル化されたデータの一括更新を効率的に実行できます。

ExecuteUpdateAsyncでの通常の非式ラムダの受入れ

ExecuteUpdateAsyncメソッドでは、任意のデータベース更新操作を実行できます。以前は、式ツリー・パラメータによってデータベース行の変更が実現されていたため、開発者が動的な変更を組み込むことは困難でした。式ツリーの手動作成は難しく、間違いの元です。

Oracle EF Core 10アプリケーションでは、ラムダ式をExecuteUpdateAsyncメソッドに渡すことができます。それにより、レコードを条件付きで更新できます。

インライン定数のリダクション

以前のOracle EF Coreバージョンでは、機密データ・ロギングが無効になっていても、インラインSQL文のパラメータ値がログに記録されていました。セキュリティを強化するために、Oracle EF Core 10では、デフォルトで、インラインSQL文のパラメータ値がリダクションされます。これにより、誤って機密情報がロギングされることがなくなります。

ICollection<T>でのカウント操作の最適化

Countメソッドは、Oracle EF Core 10で最適化されて、.NETコレクションの評価時にCOUNTではなくEXISTS SQLキーワードが使用されるようになりました。

パラメータ名の単純化

問合せのパラメータ名が単純になり、アンダースコア接頭辞が削除されるようになりました(たとえば、:_city_0ではなく:p_city)。名前の一意性は引き続き強制適用されます。また、競合を防ぐために、予約済のOracleキーワードは単純化されません。