打开连接后,我是否必须明确关闭它?还是.net 会自动关闭它?如果抛出异常怎么办?
using (DataContext pContext = new DataContext())
{
pContext.Connection.Open()
using (var trx = pContext.Connection.BeginTransaction())
{
//make changes to objects
//Make calls to ExecuteStoreCommand("Update table SET pee=1 AND poop=2 WHERE ETC");
pContext.SaveChanges();
trx.Commit();
}
}
框架是否在所有实例中调用 pContext.Connection.Close()`?我知道在正常的 using 语句中它确实如此,但是当我手动打开它时呢?
我正在使用 Connection.BeginTransaction 因为在我的测试中,(仅使用 SaveChanges() 没有事务)如果此代码由于某种原因执行并失败,即使对我的对象的更改不是,在 ExecuteStoreCommand() 期间发送的命令也会被保存.
我必须在调用 pContext.Connection.BeginTransaction() 之前调用 Connection.Open() 否则我会收到错误消息:
Inner Exception:
The connection is not open.
任何帮助,将不胜感激。