这不是SQL Connection Pooling and Audit Login/Logout。
我有一个C# SQL3.5应用程序,可以在本地数据库上更新SQL2008上的大约30K条记录。
逻辑是它首先检查记录是否存在SingleOrDefault(p => p.stock=stock && p.number=number),然后添加或更新记录。
我只关注使用SingleOrDefault的读取。
我使用SQLMetal.exe创建了datacontext文件。
在SQL Profiler中看到的每次读取后:
审核注销(1300个读取)
RPC:完成的sp_reset_connection
审核登录
RPC:已完成sp_executesql 'select etc...‘
我使用2005和不同的数据库在另一台机器上创建了一个新项目,但得到了不同的结果。
审核登录
RPC:已完成sp_execute SQL...
RPC:已完成sp_execute SQL...
RPC:已完成sp_execute SQL...
..。
有什么想法吗?
发布于 2009-08-14 17:50:05
将所有内容包装在TransactionState对象中为我解决了这个问题。例如:
using (TransactionScope ts = new TransactionScope())
{
// do db stuff here
ts.Complete();
}请注意,即使我只进行数据库读取,我也是这样做的。
还要注意,如果项目中没有对System.Transactions的引用,则必须将其添加到项目中。
https://stackoverflow.com/questions/699179
复制相似问题