Oracle
 sql >> база данни >  >> RDS >> Oracle

Oracle Entity Framework - Извикване на персонализирана функция (EDIT_DISTANCE)

Има страхотна библиотека, която да ви помогне с картографирането на функциите на базата данни и съхранените процедури към Entity Framework.

Инсталирайте пакета 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)));
}

Обадете се на вашата новокартирана функция „ToNumber()“ във вашите LINQ заявки:

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

И клати чичо ти.

За съжаление, за функции на Oracle, които се намират в различна схема, като UTL_MATCH.EDIT_DISTANCE няма да проработи. Предполага се, че можете да зададете схемата, но изглежда, че в момента не работи с Oracle или нещо подобно. Но за други функции като SOUNDEX и т.н. това трябва да работи добре.

Можете да прочетете Документацията за EntityFramework.Functions тук



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как мога да видя плана за изпълнение на SQL в Oracle?

  2. Вмъкнете текстов файл в Oracle с групово вмъкване

  3. Въведение в PL/SQL VARRAY в Oracle Database

  4. Oracle Plus (+) Присъединява се към ANSI преобразуване

  5. добавяне на първичен ключ към sql изглед