Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Oracle Entity Framework - Panggil fungsi kustom (EDIT_DISTANCE)

Ada Pustaka yang luar biasa untuk membantu memetakan fungsi Basis Data dan Prosedur Tersimpan ke Kerangka Entitas.

Instal paket Nuget

- Install-Package EntityFramework.Functions

Buat Metode Ekstensi untuk fungsi:

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

Petakan di Konteks EntityFramework Anda:

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

Panggil fungsi "ToNumber()" yang baru dipetakan dalam kueri LINQ Anda:

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

Dan potong Pamanmu.

Sayangnya, untuk fungsi Oracle yang berada dalam skema yang berbeda, seperti UTL_MATCH.EDIT_DISTANCE itu tidak akan bekerja. Anda seharusnya dapat mengatur skema, tetapi sepertinya saat ini tidak berfungsi dengan Oracle atau sesuatu. Tapi untuk fungsi lain seperti SOUNDEX dll. ini akan berfungsi dengan baik.

Anda dapat membaca Dokumentasi untuk EntityFramework.Functions di sini



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kembalikan baris dengan nilai maksimal satu kolom per grup

  2. Audit di Oracle

  3. Cara memperbarui ID di tabel 2 dari tabel 1 di Oracle sql

  4. Menemukan tanggal yang hilang secara berurutan

  5. Oracle SELECT TOP 10 catatan