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

So sánh các nhà cung cấp tương thích Entity Framework cho Oracle?

Tôi đã chạy so sánh nhanh các nhà cung cấp khác nhau bao gồm:

  1. Trải nghiệm cài đặt.
  2. Kết nối.
  3. Trải nghiệm Server Explorer.
  4. Cập nhật từ trải nghiệm cơ sở dữ liệu (cơ sở dữ liệu trước).
  5. Ánh xạ kiểu dữ liệu (trước tiên là cơ sở dữ liệu).

Đây là kết luận:

1. Kinh nghiệm cài đặt.

Oracle's ODP.NET (beta 3):Cài đặt phức tạp các phiên bản x86 và x64 riêng biệt, trình cài đặt không được thiết kế cho Windows. Đường dẫn hệ thống Fills (nguy hiểm là gần với độ dài tối đa), không cài đặt vào các thư mục tiêu chuẩn (tệp chương trình + dữ liệu ứng dụng).

Devart's DotConnect:Cài đặt trơn tru, DLL của nhà cung cấp được quản lý hoàn toàn.

Tiến trình của DataDirect:Cài đặt suôn sẻ, DLL của nhà cung cấp được quản lý hoàn toàn.

OPENLINK:Có vẻ như yêu cầu cài đặt phía máy chủ, không kiểm tra thêm.

2. Khả năng kết nối.

Oracle's ODP.NET (beta 3):Cấu hình phức tạp, yêu cầu cài đặt Oracle trên máy khách và tệp TSN bổ sung trong cài đặt Oracle hoặc một chuỗi kết nối dài và phức tạp trông giống như LISP / Scheme.
Cập nhật: Không thể tìm thấy điều này trong tài liệu, tuy nhiên, chuỗi kết nối cũng có thể chứa định nghĩa nguồn dữ liệu đơn giản, ví dụ:serverName:port / serviceName.

Devart's DotConnect:Chuỗi kết nối đơn giản + trình hướng dẫn.

Tiến trình của DataDirect:Chuỗi kết nối đơn giản + trình hướng dẫn.

3. Trải nghiệm Server Explorer.

ODP.NET của Oracle (beta 3):Mạnh nhất trong số ba, cho phép dễ dàng chỉnh sửa, xem các khóa và chỉ mục.

Devart's DotConnect:Xem bảng và trường.

Tiến trình của DataDirect:Cho phép dễ dàng chỉnh sửa, xem các khóa và chỉ mục.

4. Cập nhật từ trải nghiệm cơ sở dữ liệu (cơ sở dữ liệu trước).

ODP.NET của Oracle (beta 3):Đơn giản.

Devart's DotConnect:Hiển thị các bảng từ tất cả các lược đồ, không có tùy chọn để lọc - khiến việc tìm kiếm các bảng trở nên mệt mỏi.

Tiến trình của DataDirect:Đơn giản.

5. Ánh xạ kiểu dữ liệu (trước tiên là cơ sở dữ liệu).

ODP.NET của Oracle (beta 3):Ánh xạ mặc định cho số (1,0), số (2,0) và số (3,0) bị sai *. Có thể ghi đè thủ công cho số (2,0) và số (3 , 0). Việc sửa lỗi cho số (1,0) không hoạt động (ít nhất là không hoạt động trên phiên bản beta 3 - có thể đã hoạt động trong phiên bản beta 2).

Cập nhật: Hiện tại, phiên bản phát hành đã hết (112030), điều này đã được khắc phục. Một số ánh xạ có thể thực hiện được thông qua phần trong tệp app.config.

Devart's DotConnect:Hiển thị các bảng từ tất cả các lược đồ, không có tùy chọn lọc - khiến việc tìm kiếm các bảng trở nên mệt mỏi. , 0) đều sai *. Ghi đè thủ công sẽ hoạt động - không kiểm tra.

Tiến trình của DataDirect:Các ánh xạ mặc định là OK *.

(*) Các ánh xạ mà tôi mong đợi:

DB Data Type    .NET Data Type
integer     Decimal
int         Decimal
smallint        Decimal
long        String
decimal     Decimal
rowid       String
float       Decimal
double      Decimal
binary float    Single
binary double   Double
char[40]        String
charvar[40]     String
natchar[40]     String
natcharvar[40]  String
natcharacter[40]    String
natcharactervar[40] String
number      Decimal
numeric     Decimal
nvarchar2[40]   String
real        Decimal
date        DateTime
timestamp       DateTime
timestamplocal  DateTime
timestampzone   DateTimeOffset
xml String
raw15       Binary
raw16       Guid
raw17       Int64
number(1,0)     Boolean
number(2,0)     Byte or SByte
number(3,0)     Byte or SByte (accepted Int16 as OK too)
number(4,0)     Int16
number(5,0)     Int16 (accepted Int32 as OK too)
number(6,0)     Int32
number(7,0)     Int32
number(8,0)     Int32
number(9,0)     Int32
number(10,0)    Int32 (accepted Int64 as OK too)
number(11,0)    Int64
number(15,0)    Int64
number(16,0)    Int64
number(17,0)    Int64
number(18,0)    Int64
number(19,0)    Int64 (accepted Decimal as OK too)
number(20,0)    Decimal (would accept Int64 as OK too)
number(21+,0)   Decimal

Nếu bạn muốn kiểu cơ sở dữ liệu có thể lưu trữ bất kỳ số nào trong phạm vi kiểu .NET thì IntX yêu cầu một số (N, 0) trong đó Ceil (log10 (2 ^ X)) =N để lưu trữ **.

Bool (Int1) ==> number(1,0)
Byte (Int8) ==> number(3,0)
Int16, UInt16 ==> number(5,0)
Int32, UInt32 ==> number(10,0)
Int64 ==> number(19,0)
UInt64 ==> number(20,0)

** Tính toán giả định các số không có dấu, cho các số có dấu ceil (log (2 ^ (X-1)).

Tài liệu tham khảo cho các giả định về kiểu dữ liệu:
TECH trên mạng
Devart
Oracle



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hàm ABS () trong Oracle

  2. tạo bảng với sequence.nextval trong oracle

  3. Sự khác biệt giữa ký hiệu cộng (+) của Oracle và ký hiệu ansi JOIN?

  4. Sử dụng hàm Max () để chọn giá trị nhóm

  5. Cách bật ghi nhật ký cho các câu lệnh SQL khi sử dụng JDBC