我正在使用L2S检查密钥是否已存在,如果不存在,请创建并插入一个密钥。同样的DataContext也用于在同一个C#方法中执行其他查询。在完成它之后,我正在使用using
关键字来处理DataContext。我迷上了sql分析器,看到它会登录,执行查询,然后注销。即使相同的DataContext稍后会执行查询或更新,它似乎也会这样做。我认为datacontext只登录一次,并在该会话期间执行所有查询?你多久打电话给SubmitChanges()很重要?或者我错过了什么?Linq2Sql datacontext登录/注销行为
嘲笑我所看到的:
using(Datacontext)
{
//Audit Login
var b = DataContext.Table.FirstOrDefault(t=>t.Id == 4);
//RPC: Completed
//Audit Logout
//Audit Login
var x = DataContext.OtherTable.Any(t=>t.Id == 4);
//RPC: Completed
//Audit Logout
}
更新
SQL事件探查器中显示为几百毫秒这些注销的“持续时间”。那段时间我的应用程序正在等待?
你也可能要更改FirstOrDefault这里的SingleOrDefault(假设你ID是唯一的......你总是会得到一个结果)。这将从您的SQL问题中删除“Top 1”。也许你再次获得一些毫秒 – Pleun 2011-05-26 15:18:43