2012-06-14 6 views
5

Tôi đã nâng cấp EntityModel lên phiên bản 4.3 bằng cách sử dụng NuGet.'ObjectContext' không chứa định nghĩa cho 'Entry' và không có phương pháp mở rộng 'Entry'

Bây giờ tôi muốn thay đổi EntityObject.State của mình, nhưng không thể tìm thấy phương thức .Entry().

Trạng thái hiện tại là Deleted.

Đây là những gì tôi muốn làm:

someObjectContext.Entry(someEntityObject).State = EntityState.Unchanged;

Các referances để EntityFramework và EntityFramework.Extended được thêm vào.

Vì vậy, tôi đang thiếu gì?

EDIT

My NuGet đầu ra:

PM> Install-Package EntityFramework -Version 4.3.1 
'EntityFramework 4.3.1' already installed. 
Data already has a reference to 'EntityFramework 4.3.1'. 

Trả lời

13

Bạn đang sử dụng ObjectContext, mà không có phương pháp Entry. Bạn sẽ phải sử dụng DbContext, là một bao bọc xung quanh ObjectContext với các phương thức bổ sung, được thêm vào EF 4.3 4.1 (chỉnh nhờ Slauma) theo như tôi nhớ - cũng có cách để trích xuất ObjectContext từ DbContext khi cần:

ObjectContext context = ((IObjectContextAdapter)yourDbContext).ObjectContext; 

Dưới đây là cách khác xung quanh:

DbContext context = new DbContext(yourObjectContext, true); //or false, depends what you want 

Dưới đây là một link để các nhà xây dựng.

+0

được thêm vào trong EF 4.1 ... – Slauma

+0

@Slauma Cảm ơn bạn đã chỉnh sửa, chỉnh sửa ngay bây giờ ... :) –

+0

@ Trustme-I'maDoctor Cảm ơn bạn đã trợ giúp. Làm việc hoàn hảo! =) – Willem