2011-10-25 5 views
13

Tôi tự hỏi EntityFramework.dll và System.Data.Entity.dll có điểm chung gì và chúng có gì khác nhau? Tài liệu tham khảo dự án của tôi System.Data.Entity.dll (June CTP) để tận dụng mô hình mã đầu tiên và mọi thứ hoạt động tốt.EntityFramework.dll vs System.Data.Entity.dll - mơ hồ

Bây giờ tôi muốn sử dụng công cụ Code First Migrations và nó yêu cầu EntityFramework.dll mà tôi cũng phải thêm vào dự án của mình. Tuy nhiên, khi cả hai thư viện (EntityFramework.dll và System.Data.Entity.dll) được tham chiếu, tôi nhận được rất nhiều lỗi trình biên dịch cho rằng một số phân loại được định nghĩa trong cả hai thư viện.

Khi tôi xóa EntityFramework.dll, dự án sẽ biên dịch lại nhưng tôi không thể sử dụng Di chuyển. Khi chỉ EntityFramework.dll được tham chiếu, tôi nhận được lỗi complier nói với tôi rằng một số lớp học không được tìm thấy (ví dụ: datatype không gian).

Tôi nên làm gì trong tình huống này? Cảm ơn bạn trước!

Trả lời

16

Phiên bản System.Data.Entity.dll "4.2.0.0" (Tháng 6 CTP 2011) chứa mọi thứ từ EFv4.0 và EFv4.1 = cả API ObjectContext và DbContext API + các tính năng mới nhưng có lẽ là phiên bản duy nhất cho một thời gian dài sẽ kết hợp hai API này trong cùng một assembly. CTP này đã chết. Các tính năng cốt lõi mới sẽ được chuyển sang .NET 4.5 và DbContext API sẽ vẫn được chuyển thành gói NuGet riêng biệt có chứa EntityFramework.dll. Mọi thứ được mô tả here.

Việc di chuyển mã phụ thuộc vào EFv4.1 Cập nhật 1 và EntityFramework.dll của nó. Chúng không tương thích với CTP tháng 6 và được mô tả trực tiếp trong ghi chú cài đặt hoặc prerequisites = bạn không thể sử dụng chúng với CTP tháng Sáu.

+0

Đã hiểu, cảm ơn bạn. –

+0

Giải thích tốt, khi tôi thêm EF 4.3, nó chỉ thêm EF dll và entity.dll không được nâng cấp. vì vậy tôi có thể sử dụng các tính năng mới hay không? dự án biên dịch mà không có EF.dll – Dani

+1

Nếu dự án biên dịch mà không có EntityFramework.dll, nó có nghĩa là nó không sử dụng nó. –