Danh sách các nhà cung cấp Khung thực thể cho các cơ sở dữ liệu khác nhau


82

Có những nhà cung cấp nào và trải nghiệm của bạn khi sử dụng chúng

Tôi muốn biết về tất cả các nhà cung cấp .NET Framework Entity Framework nguyên bản có thể có cũng như những hạn chế của chúng so với LINQ2Entities mặc định (từ MS cho MS SQL). Nếu có nhiều hơn cho cùng một cơ sở dữ liệu thậm chí còn tốt hơn. Hãy cho tôi biết và tôi sẽ cập nhật bài đăng này với danh sách này.

Vui lòng thêm các nhà cung cấp bổ sung trực tiếp vào bài đăng này hoặc cung cấp câu trả lời và những người khác (bao gồm cả tôi) sẽ thêm nó vào danh sách.

Khung thực thể 1

Microsoft SQL Server Standard / Enterprise / Express

Microsoft SQL Server CE (Phiên bản nhỏ gọn)

  • Bất kỳ nhà cung cấp?

MySQL

  • MySQL Connector (kể từ phiên bản 6.0) - Tôi đã đọc về các vấn đề khi sử dụng Skip(), Take()Sort()trong cây biểu hiện tương tự - tất cả mọi người hoan nghênh đầu vào kinh nghiệm của họ / kiến thức về vấn đề này.

    Lưu ý : Trình kết nối MySQL / Tích hợp NET Visual Studio không được hỗ trợ trong Phiên bản Express của Visual Studio, nghĩa là bạn sẽ không thể xem cơ sở dữ liệu MySQL trong cửa sổ Trình khám phá cơ sở dữ liệu hoặc thêm nguồn dữ liệu MySQL thông qua hộp thoại trình hướng dẫn Visual Studio. Một số người dùng có thể thấy rằng điều này hạn chế khả năng sử dụng Entity Framework và MySQL trong Visual Studio Express).

  • Devart dotConnect cho MySQL - các vấn đề tương tự với trình kết nối của MySql như tôi đã đọc và cả hai đều cố gắng đổ lỗi cho MS về nó [những vấn đề này phải được giải quyết ]

SQLite

PostgreSQL

Oracle

DB2

Sybase

Informix

Firebird

Giấy gói của nhà cung cấp

Entity Framework 4 ( beta )

Microsoft SQL Server

  • Microsoft's Linq to Entities 4 - được xuất xưởng với .net 4.0 và Visual Studio 2010; cho đến nay là nhà cung cấp duy nhất cho EF4

MySQL

SQLite

PostgreSQL

Oracle

Dịch vụ phân tích máy chủ Microsoft SQL (SSAS)


2
Bất kỳ ai - có nhà cung cấp InMemory nào không? Tất nhiên các tùy chọn có sẵn sẽ bị loại bỏ rất nhiều .. nhưng có gì tốt hơn là không có, phải không?
Pure.Krome

sqlite có tùy chọn db trong bộ nhớ hoàn hảo cho các bài kiểm tra tự động, nhanh, nhẹ và gần như đầy đủ tính năng.
Jason Meckley

1
Sự thật thú vị: Đây là một trong số ít câu hỏi trên SO có 5 câu trả lời trở lên và trong đó điểm tổng hợp của tất cả các câu trả lời có sẵn ít hơn 1/3 số điểm câu hỏi. :)
dotNET

Câu trả lời:


3

DB2 sẽ hoạt động, nhưng nếu bạn muốn sử dụng một số tính năng .NET có sẵn mà tất cả chúng ta đều coi là đương nhiên (hãy nghĩ rằng nhà cung cấp vai trò và tư cách thành viên), bạn sẽ có khá nhiều việc phải làm. DB2 không thực sự làm tốt với Thủ tục lưu trữ, vì vậy bạn cũng đang xem xét rất nhiều SQL nội tuyến được tham số hóa.

Tôi cũng gặp một số vấn đề về hiệu suất với nhà cung cấp từ IBM. Có một nhà cung cấp khác có sẵn từ một công ty có tên là DataDirect. Nó trông có vẻ hiệu quả hơn, nhưng bạn sẽ phải trả giá. Đối với một cái gì đó như một trang web bên ngoài, nơi tốc độ là quan trọng, chi phí có lẽ sẽ không phải là một vấn đề.

Tôi chắc chắn rằng DB2 là một hệ thống tuyệt vời nếu bạn đang xây dựng trên một nền tảng khác, nhưng nó không thực sự được thiết kế để chơi tốt với .NET. Trừ khi bạn đã kết hôn với DB2, tôi sẽ tìm nơi khác.


3

Tôi không nghĩ DB2 hoạt động với EF 4. Nếu đúng, ai đó vui lòng sửa cho tôi và cho tôi biết nó được thực hiện như thế nào. Tôi không thể yêu cầu các nhà cung cấp DB2 hiển thị trong hộp thoại Nguồn dữ liệu.


1
Danh sách trên không nêu rõ hỗ trợ của DB2 cho EF4.
Robert Koritnik


2

Nhà cung cấp Máy chủ Dữ liệu của IBM có một số hạn chế khiến nó khó chịu và dễ hỏng đối với các tình huống truy vấn phức tạp hơn. Ngoài ra, nhà thiết kế EDMX không làm việc với các bảng Informix có tiền tố là "Informix. *". Xem tại đây: văn bản liên kết


2

Bạn đang thiếu System.Data.SQLite cho SQLite. Nó là mã nguồn mở và khá đáng tin cậy theo kinh nghiệm của tôi. Theo như tôi biết thì đây là một trong những nhà cung cấp EF đầu tiên cho cơ sở dữ liệu ngoài SQL Server


2

Sự cố "Bỏ qua / Nhận và đặt hàng" đã được khắc phục vài tháng trước trong nhà cung cấp Devart.

Một số lưu ý về hỗ trợ EF4
Hiện tại, chúng tôi cung cấp hỗ trợ cho Visual Studio Beta 1 và EF4 Beta 1. Chúng tôi dự định phát hành bản dựng có hỗ trợ EF4 vào cuối tháng 12 - đầu tháng 1. Chúng tôi không thể gọi hỗ trợ Entity Framework là lý tưởng - ORM này ban đầu được thiết kế cho MS SQL Server, do đó, khả năng tính đến những điều kỳ diệu của các DBMS khác bị hạn chế đáng kể.

Có một số vấn đề mà người triển khai nhà cung cấp EF chỉ đơn giản là không thể giải quyết. Một số ví dụ có sẵn ở đây . Vấn đề chính liên quan đến các câu lệnh CROSS APLY và OUTER APPLICY được tạo bởi thời gian chạy EF trong một số trường hợp. Các DBMS khác không cung cấp tuyên bố này, do đó, vấn đề nảy sinh với bản dịch. Người ta cũng nên nhận ra rằng trong trường hợp cơ sở dữ liệu kế thừa, EF thường không đáng tin cậy.

Chúng tôi tính đến những người dùng không hài lòng với trình thiết kế mặc định của Microsoft và xuất xưởng Entity Developer - một công cụ thiết kế thời gian mạnh mẽ - với các sản phẩm của chúng tôi.


Trình cung cấp của bạn có hoạt động chính xác với chức năng nhập (thủ tục được lưu trữ) chấp nhận các tham số không? vì tôi đang gặp sự cố với trình kết nối của MySql.
Robert Koritnik

Hiện tại, chúng tôi không có bất kỳ yêu cầu mở nào xem xét việc nhập hàm được tham số hóa. Nhưng bạn có thể kiểm tra xem dotConnect for MySQL có đáp ứng các yêu cầu của bạn hay không, chỉ cần tải xuống bản dùng thử từ trang web của chúng tôi. Một điều thực tế nữa đối với EF v1 - chúng tôi cung cấp hỗ trợ không chỉ cho việc nhập hàm mà còn cho các thủ tục không trả về bất kỳ bộ kết quả nào. Nó đạt được nhờ công cụ tạo mã cụ thể và nhà phát triển thực thể.
Devart

2

EF 7 hỗ trợ các nhà cung cấp DB sau

• Microsoft SQL Server

• SQLite

• Microsoft SQL Server Compact Edition

• Npgsql (PostgreSQL)

• Máy chủ dữ liệu IBM

• InMemory (để thử nghiệm)

Tài liệu tham khảo


Tôi nghĩ rằng đây hiện đã được đổi tên thành EntityFrameworkCore vì nó là khác nhau đáng kể: thedatafarm.com/data-access/...
andrew pate

1

MySQL có trình kết nối cho EF4 , phiên bản hiện tại là 6.3.5 và các chức năng chính của nó đang hoạt động tốt nhưng nó vẫn có vấn đề với một số phương pháp, ví dụ:

  • System.Data.Objects.ObjectContext.CreateDatabase ()
  • System.Data.Objects.ObjectContext.DatabaseExists ()

điều này gây khó khăn cho việc sử dụng hoàn toàn cách tiếp cận theo mô hình. Có thể chỉnh sửa thủ công tập lệnh MySQL (có sẵn với phương thức CreateDatabaseScript). Nhóm MySQL dường như không háo hức để giải quyết những lỗi đó, tôi không chắc mức độ cam kết thực sự từ phía họ nhưng chắc chắn là thấp hơn trước đây.

Điều đó đang được nói, các phương pháp tương tự cũng không thành công với SQL CE (chúng không được triển khai và tôi không thấy nhóm MS có khả năng giải quyết điều đó sớm).


Bạn có thể tìm thêm thông tin về hỗ trợ MySQL cho VS2010 / EF4 trên trang này: dev.mysql.com/doc/refman/5.1/en/… . Bạn sẽ cần MySQL Connector / Net phiên bản 6.3.2 trở lên.
mathijsuitmegen

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.