2011-01-13 44 views
5

Chắc chắn đây là câu hỏi cơ bản nhưng tôi không thể tìm thấy bất kỳ giải pháp nào trên google cả ở đây.TransactionScope ném ngoại lệ

khi im cố gắng để sử dụng khối mã nó ném một ngoại lệ mà 'System.Activities.Statements.TransactionScope': loại sử dụng trong một tuyên bố sử dụng phải được ngầm chuyển đổi thành 'System.IDisposable'

using (TransactionScope trans = new TransactionScope()) { }

Đơn giản, tôi muốn sử dụng TransactionScope trong mã LINQ.

Cảm ơn, Trân

+0

Có lẽ, bạn nên kiểm tra tham chiếu dự án của mình, đảm bảo đó là loại phù hợp (trong System.Transactions)? – RobS

Trả lời

8

Có thể bạn đang sử dụng sai TransactionScope.

Trình bạn đang tìm kiếm là System.Transactions.TransactionScope, nằm trong phiên bản System.Transactions.dll. Hãy chắc chắn rằng nó được tham chiếu (nó không phải theo mặc định), và rằng bạn đang "using System.Transactions".

2

Bạn đang sử dụng lớp sai TransactionScope. Cái đúng nằm trong không gian tên System.Transactions. Lỗi của bạn cho biết bạn đang sử dụng một lớp khác từ System.Activities.Statements.

6

Tôi không biết System.Activities.Statements.TransactionScope là gì nhưng bạn muốn System.Transactions.TransactionScope. Bạn cũng sẽ cần tham chiếu đến System.Transactions.dll.

Từ các tài liệu:

public sealed class TransactionScope : IDisposable 

Lưu ý rằng System.Activities.Statements.TransactionScope cuộc sống trong System.Activities.Statements được mô tả như

Các namespace System.Activities.Statements chứa hoạt động có thể được sử dụng để tạo ra quy trình công việc. Không gian tên này chứa các hoạt động được sử dụng để kiểm soát luồng, tương tác với các bộ sưu tập và các biến, ngoại lệ, bồi thường, giao dịch và tương tác với luồng công việc kế thừa.

rõ ràng là không phù hợp.