实体框架SaveChanges“挂起”程序

时间:2012-11-03 09:39:13

标签: entity-framework hang savechanges

我的代码非常简单:

Context.AddObject("EntitiesSetName", newObjectName);
Context.SaveChanges();

它运作良好,但只有一次 - 第一次。那个时候,在跟踪了SaveChanges()之后,我用Shift + F5中断了我的程序。这是一个调试过程,所以我手动从数据库中删除了一个新创建的记录,并在调试模式下再次运行程序。但它不再起作用 - 当调用SaveChanges()时它会“挂起”。

我看到另一个奇怪的事情: 如果我在addObject()之前写,而SaveChanges()被称为:

var tempResult = (from mydbRecord in Context 
                  where Context.myKey == 123 
                  select mydbRecord.myKey).Count(); 
// 123 is the key value of the record that should be created before the program hangs.

tempResult将具有下一个值:1。

所以,似乎创建了记录(当程序挂起时)并且现在存在,但是当我使用其他工具手动检查数据库时 - 它没有!

我做错了什么?是某种缓存问题还是别的什么?

修改

我找到了问题的根源。 这根本不是EF问题,但这是我用来手动控制数据库的工具的问题(Benthic)。

当工具连接到同一个数据库时,我的程序会陷入某种死锁状态(当我使用工具调用SaveChanges()时)。

所以,问题出在同步区域,imho,所以我的问题可以标记为已解决。

0 个答案:

没有答案