using语句中使用的BMS_DAL.BMSDataContext类型必须可以隐式转换为“System.IDisposable”

时间:2012-08-30 19:27:17

标签: c#

我在C#程序中有这个错误

public bool Delete(ref ENTValidationErrors validationErrors, int userAccountId)
     {
         if (DBAction == DBActionEnum.Delete)
         {
             // Begin database transaction
             using (TransactionScope ts = new TransactionScope())
             {
                 // Create data context
                 using (BMSDataContext db = new BMSDataContext())
                 {
                     this.Delete(db, ref validationErrors, userAccountId);
                     if (validationErrors.Count == 0)
                     {
                         //Commit transaction since the delete was successful
                         ts.Complete();
                         return true;
                     }
                     else
                     {
                         return false;
                     }
                 }
             }
         }
         else
         {
             throw new Exception("DBAction not delete.");
         }
     }

第二个“using语句”发生错误。它说使用语句中使用的'BMS_DAL.BMSDataContext类型必须可以隐式转换为“System.IDisposable”'

这里一定有什么问题?

2 个答案:

答案 0 :(得分:0)

该错误指出BMSDataContext未实现IDisposableusing语句需要类型。

取出第二个using语句,并将其替换为new

或者,如果需要,您可以在IDisposable上实施BMSDataContext。您可以阅读可能有助于您决定是否需要实施的This Post

答案 1 :(得分:0)

使用Statement

添加System.Data.Linq
using System.Data.Linq;