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

Oracle Entity Framework-カスタム関数の呼び出し(EDIT_DISTANCE)

    データベース関数とストアドプロシージャをEntityFrameworkにマッピングするのに役立つ素晴らしいライブラリがあります。

    Nugetパッケージをインストールする

    - Install-Package EntityFramework.Functions
    

    関数の拡張メソッドを作成する:

    public static class OracleFunctions
    {
       [Function(FunctionType.BuiltInFunction, "TO_NUMBER")]
       public static int? ToNumber(this string value) => Function.CallNotSupported<int?>();
    }
    

    EntityFrameworkコンテキストにマップします:

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
       modelBuilder.Conventions.Add(new FunctionConvention(typeof(OracleFunctions)));
    }
    

    LINQクエリで新しくマップされた「ToNumber()」関数を呼び出します:

    .FirstOrDefault(p => p.Id == "209706".ToNumber());
    

    そして、おじさんをボブします。

    残念ながら、UTL_MATCH.EDIT_DISTANCEなどの別のスキーマに存在するOracle関数の場合 効果がないでしょう。スキーマを設定できるはずですが、現在Oracleなどで動作していないようです。ただし、SOUNDEXなどの他の機能については など。これは正常に機能するはずです。

    EntityFramework.Functionsのドキュメントはこちら で読むことができます



    1. アクティビティデータに基づいてID列を作成します

    2. データベースへのデータのアップロードに関する問題

    3. ユーザーはデータベースにアクセスできません

    4. ヒントHINT_PASS_DISTINCT_THROUGHは、PageRequestに対してページごとに返されるエンティティの量を構成されたページサイズ(PostgreSQL)未満に減らします。