Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Oracle Entity Framework - Chức năng tùy chỉnh cuộc gọi (EDIT_DISTANCE)

Có một Thư viện tuyệt vời để trợ giúp ánh xạ các chức năng của Cơ sở dữ liệu và Thủ tục được Lưu trữ tới Khung thực thể.

Cài đặt gói Nuget

- Install-Package EntityFramework.Functions

Tạo các phương thức mở rộng cho các chức năng:

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

Ánh xạ nó trên EntityFramework Context của bạn:

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

Gọi hàm "ToNumber ()" mới được ánh xạ của bạn trong các truy vấn LINQ của bạn:

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

Và nhắc nhở Bác của bạn.

Thật không may, đối với các hàm Oracle nằm trong một lược đồ khác, như UTL_MATCH.EDIT_DISTANCE nó sẽ không làm việc. Bạn được cho là có thể thiết lập lược đồ, nhưng có vẻ như nó hiện không hoạt động với Oracle hoặc thứ gì đó. Nhưng đối với các dự án khác như SOUNDEX v.v ... điều này sẽ hoạt động tốt.

Bạn có thể đọc Tài liệu cho EntityFramework.Functions tại đây



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nhà tiên tri; giới hạn hàng cho mỗi giá trị cột

  2. Lỗi khi cố gắng truy xuất văn bản do lỗi ORA-01804

  3. Có phải xmlparserv2 từ com.oracle.jdbc:ojdbc8 (v12.2.0.1) đột ngột bị hỏng không?

  4. Thực thi do người dùng xác định với thông báo tùy chỉnh

  5. So sánh các hàng trong bảng oracle và cập nhật các hàng phù hợp