我在使用实体框架和COM+时遇到了问题。其架构如下:
然后,
.ToList()来完成的
当我尝试运行服务时,DAL方法返回一个超时内部异常。当我试图从Enterprise查看表时,它也会返回一个超时!据我所见,SELECT语句阻塞了其他连接实例。
还有其他人遇到过类似的问题吗?
我还不能发布任何代码因为我不在工作..。明天就会这么做。
发布于 2011-05-05 13:31:44
嗯,看起来,实体框架与上面的任何一个都没有关系。事实证明,问题就在COM+内部。我应该用ContextUtil.SetComplete()结束每个ContextUtil.SetComplete方法。显然,我没有这样做,所以事务保持活跃,在最初几次调用之后,它锁定了我的db。
例如:
Using MyEntity As New EntityObject
MyEntity.Connection.Open()
Dim rows = From tbl In MyEntity.MyTable _
Select tbl
list = rows.ToList
End Using
ContextUtil.SetComplete()请注意,如果出现异常,您应该放置一个ContextUtil.SetAbort()。我还想指出,上述代码是混合的。它是我的DAL层的一部分,也是我的COM+的一部分。我这样说是为了让这个例子更清楚..。
https://stackoverflow.com/questions/5888170
复制相似问题