Lên đến EF5, để kết nối với SQL Server 2012, tất cả những gì cần thiết để đến là chỉ định một chuỗi kết nối mà trông giống như sau:Đang kết nối đến SQL Server với EF6
Data Source=.\SqlExpress;Initial Catalog=MyDatabase;Integrated security=True;MultipleActiveResultSets=True
Phương pháp này không hoạt động với EF6, đưa ra ngoại lệ
Không tìm thấy nhà cung cấp khung thực thể nào cho 'System.Data.Odbc' ADO.NET provider. Đảm bảo cung cấp dịch vụ được đăng ký trong phần 'entityFramework' của tập tin ứng dụng cấu hình
Tôi không sử dụng app.config
tập tin ở tất cả, tôi đang đi trên chuỗi kết nối để MyContext constructor. Tại sao nó cố gắng sử dụng nhà cung cấp Odbc ở tất cả, và thay vì không sử dụng System.Data.SqlClient?
Cần phải làm gì để kết nối với SQL Server với mã EF6 đầu tiên? Tôi đảm bảo rằng EntityFramework.dll và EntityFramework.SqlServer.dll đều có sẵn trong thư mục Ứng dụng. Tôi thậm chí đã bổ sung EF6 gói nuget v6.0.0.1 trong dự án WPF, mặc dù nó không trực tiếp sử dụng thư viện EF, và đảm bảo rằng tệp App.Config được tạo tự động (bởi nuget) được sao chép vào thư mục Application (Debug) - vẫn không sự thành công.
Tôi cũng đã cố gắng setprovider bằng tay trong mã:
public class OeeCoachConfiguration : DbConfiguration
{
public OeeCoachConfiguration()
{
SetProviderServices("System.Data.SqlClient",
System.Data.Entity.SqlServer.SqlProviderServices.Instance);
}
}
Vẫn không thành công. Kết cấu đề tài của tôi là như sau (giản thể):
dự án WPF - không có tham chiếu đến EF (cũng đã cố gắng bổ sung thêm tài liệu tham khảo EF)
ViewModel thư viện lớp - không có tham chiếu đến EF
lớp mẫu thư viện - có tham chiếu đến thư viện EF (cả hai dll)
Thư viện lớp dữ liệu - có tham chiếu đến thư viện UI (cả hai dll).
Tôi đang sử dụng phương pháp CodeFirst và thiết lập này hoạt động mà không gặp bất kỳ sự cố nào với EF5. Bất kỳ trợ giúp nào cũng được đánh giá rất cao.
Tôi không có bất kỳ quyền kiểm soát của bên thứ ba nào có liên quan đến ADO (hoặc EF). – Goran
Chuỗi kết nối của bạn có chỉ định nhà cung cấp không? – taylonr
Không, chuỗi kết nối của tôi chính xác như tôi đã viết trong câu hỏi. – Goran