2012-08-28 27 views
5

Chúng tôi di chuyển một số dự án từ VS2010 để VS2012 nhưng vẫn còn sử dụng .NET 4.0 và không .NET 4.5Sử dụng EF 4.4 và không 5.0 với VS2012

Khi tôi thêm một mới EDMX, sử dụng VS2012 EF 5,0 nhưng tôi d như tiếp tục sử dụng phiên bản 4.x đó là điểm đầu tiên.

Điểm thứ hai là phiên bản 5.0, kế thừa từ DbContext chứ không phải ObjectContext như phiên bản 4.x. Với phiên bản 5.0, tôi không thấy bất kỳ cách nào để truyền chuỗi kết nối thành tham số.

Tôi làm cách nào để sử dụng phiên bản 4.x trong VS2012, với cùng một hành vi thiết kế EDMX?

Xin cảm ơn,

+0

EF 4.4 là phiên bản EntityFramework.dll riêng biệt .NET 4, cũng chứa 'DbContext'. 'ObjectContext' là một phần của assembly' System.Data.Entity.dll' cốt lõi. Bạn chỉ muốn sử dụng sau này? Nếu vậy, đó là EF 4.0, không phải là 4.4. – hvd

+0

@hvd Điểm chính là cách tạo EDMX phiên bản 4 từ VS2012 chứ không phải EF 5? –

+0

Phiên bản EDMX là 2.0, không phải 4, không phải 5 và thêm EDMX vào dự án .NET 4 thêm tham chiếu đến EF 4.4, không phải EF 5, vì vậy nó thực sự không rõ ràng với tôi về điểm đầu tiên của bạn. Điểm thứ hai (DbContext vs ObjectContext) là rõ ràng, tôi chỉ không chắc chắn những gì bạn đang yêu cầu vượt ra ngoài đó. – hvd

Trả lời

10

Như đã đề cập trong các nhận xét, bạn thực sự nhận được EF 4.4 chứ không phải EF 5.0. Tuy nhiên, đáng ngạc nhiên, EF 4.4 có trong gói NuGet EntityFramework 5.0.

Đối với câu hỏi khác, bạn có thể mở EDMX trong trình thiết kế, khôi phục "Chiến lược tạo mã" từ "Không" thành "Mặc định", sau đó trong trình khám phá giải pháp, hãy xóa các tệp .tt. Bây giờ bạn sẽ có lại ObjectContext và nếu muốn, bạn có thể xóa gói EntityFramework khỏi dự án của mình.

Tôi không chắc chắn có cách nào thay đổi hành vi mặc định này khi thêm gói NuGet hay không.

+0

Có cách nào để quay lại phiên bản mới không? (không xóa và tạo EDMX) –

+1

@ Kris-I Có, nhấp chuột phải vào trình thiết kế và chọn "Thêm mục tạo mã" (từ bộ nhớ, văn bản thực tế có thể hơi khác) – hvd

Các vấn đề liên quan