c# – 实体框架SaveChanges失败增量标识列

执行SaveChanges方法时,我对实体框架的行为有疑问.

我有一个具有标识列的实体,并且只是意识到如果我调用SaveChanges(对于新插入),并且它失败,那么我的DB中的标识列会增加.

我以前的Identity列值等于7,我调试我的代码和SaveChanges方法失败了5次,因为我错过了插入一个必需的值,当它解决了我发现我的身份列值现在是13.

这是正常行为吗?当Entity Framework无法提交到我的数据库时,有没有办法避免增加标识列值?

感谢任何帮助

解决方法

这是sql的行为,而不是实体框架.你应该看看Dbreseed命令并为你的表执行它,如果你不想让身份被浪费.检查这个问题 RESEED identity columns on the database如果我是你我就不会烦恼.而不仅仅是使用Bigint数据类型作为标识列

相关文章

目录简介使用JS互操作使用ClipLazor库创建项目使用方法简单测...
目录简介快速入门安装 NuGet 包实体类User数据库类DbFactory...
本文实现一个简单的配置类,原理比较简单,适用于一些小型项...
C#中Description特性主要用于枚举和属性,方法比较简单,记录...
[TOC] # 原理简介 本文参考[C#/WPF/WinForm/程序实现软件开机...
目录简介获取 HTML 文档解析 HTML 文档测试补充:使用 CSS 选...