.net LINQ到SQL DataContext和IDisposable
我刚开始做一个使用LINQ到SQL的项目。 我注意到代码没有使用iDisposable,我自己也不会传递DataContext 但是,因为它是在1个方法中创建的,并传递给另一个方法,所以我需要执行db.Dispose()吗 2次,每个方法一次,还是仅在创建DataContext实例的方法上一次.net LINQ到SQL DataContext和IDisposable,.net,c#-4.0,linq-to-sql,.net,C# 4.0,Linq To Sql,我刚开始做一个使用LINQ到SQL的项目。 我注意到代码没有使用iDisposable,我自己也不会传递DataContext 但是,因为它是在1个方法中创建的,并传递给另一个方法,所以我需要执行db.Dispose()吗 2次,每个方法一次,还是仅在创建DataContext实例的方法上一次 protected void btnSaveCC_Click(object sender, EventArgs e) { var db = new DataCo
protected void btnSaveCC_Click(object sender, EventArgs e)
{
var db = new DataContext();
CCBadgeInfo(db);
}
private void saveCCInfo(DataContext db)
{
var currentCase = (Case)HttpContext.Current.Items["CurrentCase"];
if (currentCase.TypeId == (int)prj.Constants.Constant..CreditFraud)
{
var applicant = db.Applicants.Where(a => a.ApplicantId == currentCase.ApplicantId).SingleOrDefault();
applicant.CCExpirationDate = tryConvertDateTime(txtCCExpirationDate.Text);
}
db.SubmitChanges();
}
你应该只打一次电话。但是,多次调用Dispose不会造成任何伤害: 在你的情况下,你可以
protected void btnSaveCC_Click(object sender, EventArgs e)
{
using (var db = new DataContext()) {
CCBadgeInfo(db);
}
}
或者在saveCCInfo方法中创建并处理DataContext。共识是:不,不需要处理:CCBadgeInfo的代码在哪里?