1

我正在为我的项目使用 EF 4。我将身份字段作为其中一些实体的主键。

现在,如果由于某种原因,当我尝试插入新行并且 SaveChanges() 失败,那么我假设身份值仍会增加并且序列中会有中断。

我的问题是如果我在一个循环中保存很多实体怎么办?我添加到上下文中但在 SaveChanges() 上出错的那些会发生什么情况……它们是否会导致标识值在每次后续调用 SaveChanges() 时递增,因为这些实体从未提交到数据库?

4

1 回答 1

1

如果 SaveChanges 失败,您将收到一个异常,并且您将无法进一步保存任何项目,因为一次又一次调用 SaveChanges 将继续失败,最后一次没有保存的更改。

身份永远不会中断,管理身份的不是实体框架,而是 SQL Server,无论实体框架失败,SQL Server 都会正确完成其工作。

于 2013-08-27T17:50:34.560 回答