2011-07-19 31 views
18

Tôi đang cố gắng sử dụng đối tượng 'ngữ cảnh' của mình trong một câu lệnh sử dụng. Nó hoạt động trên một dự án, nhưng trên một dự án khác, tôi nhận được lỗi sau.Đối tượng ngữ cảnh LINQ không đăng ký như một loại đối tượng System.IDisposable

'...': loại sử dụng trong một tuyên bố sử dụng phải được ngầm chuyển đổi để 'System.IDisposable'

Khi tôi đề cập đến đối tượng 'bối cảnh', tôi đề cập đến đối tượng được tạo tự động khi bạn đang làm việc với LINQ to SQL.

Lớp tôi đang làm việc bên trong, triển khai một giao diện khác, có thể điều chỉnh đối tượng ngữ cảnh này?

using (TGDC context = new TGDC()) 
      { 

      } 

từ

sử dụng

có màu đỏ squigly dòng dưới nó (lỗi).

+0

Hoạt động như bạn có nhiều hơn một lớp TGDC được khai báo. – hatchet

Trả lời

36

Bạn nên thêm tham chiếu đến System.Data.Linq. Tôi nghi ngờ đó là vấn đề.

+0

Đúng, cảm ơn bạn! – Kukoy

+9

Nó không sửa chữa nó cho tôi. Có vẻ như tôi cần thêm tham chiếu đến assembly EntityFramework –

+1

Sử dụng 'Entity Framework 6', tôi phải thêm tham chiếu vào EntityFramework.dll như đã đề cập trong phần bình luận ở trên. Các phiên bản cũ hơn của Entity Framework yêu cầu các assembly khác nhau được tham chiếu để khắc phục vấn đề này. – LeftyCoder

0

Nó nói rằng TGDC không triển khai giao diện IDisposable.

Khai báo lớp học cho giao diện TGDC như thế nào? Bạn có lỗi trình biên dịch nhiều hơn? Bạn có một số lớp có tên TGDC trong các không gian tên khác nhau không?

0

Tôi nhận được điều này định kỳ và trong một thời gian tôi luôn luôn cố gắng đấu tranh với nó bởi vì nó không ngay lập tức hiển nhiên những gì sai. Có vẻ như tất cả các hoops đã được nhảy qua, nhưng than ôi, không phải như vậy. Cuối cùng giải pháp sẽ dính.

Trong dự án bạn đang viết mã này, bạn đang tham khảo dự án trong đó "TGDC" của bạn được xác định nhưng bạn không tham chiếu System.Data.Linq. Bạn cần tham khảo cả hai hội đồng này. Điều này chỉ có thể thực sự xảy ra khi bạn đang sử dụng một số loại kiến ​​trúc phân lớp.

8

Hoặc, nếu bạn đang sử dụng Entity Framework, chắc chắn rằng bạn có một tham chiếu đến System.Data.EntitySystem.Data.Objects (C#: using/VB.NET: Imports).

+2

thêm tham chiếu đến System.Data.Entity đã sửa nó cho tôi. Cảm ơn bạn! –

1

Đây là một câu hỏi cũ, nhưng kể từ khi tôi tìm thấy nó thông qua tìm kiếm của Google:

Tôi đã có kinh nghiệm này khi làm việc với một trang web mà làm việc mà không vấn đề trong Visual Studio 2010.

Có điều gì đó kỳ lạ về Visual Studio 2012 và Entity Framework; thêm EF vào một dự án hiện có khiến EF 5.0 được cài đặt (gói NuGet), không có tùy chọn để gắn với 4.0.

Nhận xét về this answer đối với câu hỏi được liên kết là điều làm cho pop thực hiện.

Giải pháp dường như được nâng cấp lên phiên bản EF rằng VS 2012 sử dụng, hoặc sử dụng VS 2010.

6

Thêm một tham chiếu đến assembly EntityFramework.dll được tham chiếu bởi dự án mà định nghĩa lớp bối cảnh EF của bạn.

+0

Làm việc cho tôi bằng cách sử dụng VS2013 Express. – rkawano

3

Thêm tham chiếu đến tổ hợp EntityFramework

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