实体框架 6 Code First int Identity 列值第一行为零

2023-12-29

首次执行 update-database 命令以使用种子数据填充数据库后:

发现所有 int Id 列均以零 (0) 开头,而不是预期的一 (1)。

在 Configuration.cs 中的 Seed 方法顶部为每个实体/表添加了以下 2 行代码:

[注意:由于外键约束,我删除了后代表中的所有行,然后沿着祖先链向上移动。]

context.Database.ExecuteSqlCommand("delete from Widgets");
context.Database.ExecuteSqlCommand("DBCC CHECKIDENT ('Widgets', RESEED, 0)");

然后,我重新运行 update-database,所有 int Id 列都以一 (1) 开头。

如果我删除数据库,运行/添加初始迁移,然后运行 ​​update-database,则所有 int Id 列都以零 (0) 开头。

就好像DBCC CHECKIDENT ('Widgets', RESEED, 0)第一次运行 Seed 方法时,不会执行 SQL 语句。

此外,如果实体/表没有种子数据,则无论运行 update-database 命令多少次,第一次将行添加到空表时,Id 都将为零 (0)。

可能有一种方法可以在覆盖中指定 int Identity 列的初始种子值OnModelCreating的方法IdentityModels.cs?

Update:

  1. 改变:DBCC CHECKIDENT ('Table', RESEED, 0) to DBCC CHECKIDENT ('Table', RESEED, 1)在 Configuration.cs 中。

  2. 删除了数据库。

  3. 执行:update-database -TargetMigration Initial(结果是所有以 1 开头的 int Id。)

  4. 执行中update-database重置数据库。 (结果是所有 int Id 都以 2 开头,无论运行多少次update-database.)


您的具体迁移类应该类似于以下内容:

public class 201707132034165_MyAwesomeDbInitial : DbMigration
{
    #region <Methods>

    public override void Up()
    {
        CreateTable(
            "dbo.HasOverdrive",
            c => new
            {
                HasOverdriveId = c.Int(nullable: false, identity: true),
                HasOverdriveValue = c.String(nullable: false, maxLength: 5)
            })
            .PrimaryKey(t => t.HasOverdriveId)
            .Index(t => t.HasOverdriveValue, unique: true, name: "UX_HasOverdrive_AlternateKey");
    }

    // This should is called by your DbConfiguration class
    public void Seed(MyAwesomeDbContext context)
    {
        // DO THIS FIRST !!!!!!!!!!!!!!!
        context.Database.ExecuteSqlCommand("DBCC CHECKIDENT ('HasOverdrive', RESEED, 0)");

        // LOOKUPS
        SeedHasOverdrive(context);
    }

    private void SeedHasOverdrive(MeasurementContractsDbContext context)
    {
        context.HasOverdrive.AddOrUpdate
        (
            m => m.Id,
            new HasOverdrive { HasOverdriveId = 0, HasOverdriveValue = "No" }, // 0 = FALSE 
            new HasOverdrive { HasOverdriveId = 1, HasOverdriveValue = "Yes" } // 1 = TRUE
        );
    }

    #endregion
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

实体框架 6 Code First int Identity 列值第一行为零 的相关文章

  • Signalr 在生产服务器中总是陷入长轮询

    当我在服务器中托管应用程序时 它会检查服务器端事件并始终回退到长轮询 服务器托管环境为Windows Server 2012 R1和IIS 7 5 无论如何 我们是否可以解决这个问题 https cloud githubuserconten
  • 模板类的不明确多重继承

    我有一个真实的情况 可以总结为以下示例 template lt typename ListenerType gt struct Notifier void add listener ListenerType struct TimeListe
  • SSH 主机密钥指纹与模式 C# WinSCP 不匹配

    我尝试通过 WinSCP 使用 C 连接到 FTPS 服务器 但收到此错误 SSH 主机密钥指纹 与模式不匹配 经过大量研究 我相信这与密钥的长度有关 当使用 服务器和协议信息 下的界面进行连接时 我从 WinSCP 获得的密钥是xx xx
  • 使用 C# 在 WinRT 中获取可用磁盘空间

    DllImport kernel32 dll SetLastError true static extern bool GetDiskFreeSpaceEx string lpDirectoryName out ulong lpFreeBy
  • SQL Group BY,每个组的前 N ​​个项目

    我有一个 SQL 查询 可以获取给定商店中销量最高的 5 件商品 SELECT TOP 5 S UPCCode SUM TotalDollarSales FROM Sales S WHERE S StoreId 1 GROUP BY S U
  • A* 之间的差异 pA = 新 A;和 A* pA = 新 A();

    在 C 中 以下两个动态对象创建之间的确切区别是什么 A pA new A A pA new A 我做了一些测试 但似乎在这两种情况下 都调用了默认构造函数 并且仅调用了它 我正在寻找性能方面的任何差异 Thanks If A是 POD 类
  • 编译的表达式树会泄漏吗?

    根据我的理解 JIT 代码在程序运行时永远不会从内存中释放 这是否意味着重复调用 Compile 表达式树上会泄漏内存吗 这意味着仅在静态构造函数中编译表达式树或以其他方式缓存它们 这可能不那么简单 正确的 他们可能是GCed Lambda
  • 如何在 Team Foundation 上强制发表有意义的签入评论?

    我有一个开发团队有一个坏习惯 他们写道poor签入评论 当我们必须在团队基础上查看文件的历史记录时 这使得它成为一场噩梦 我已经启用了变更集评论政策 这样他们甚至可以在签到时留下评论 否则他们不会 我们就团队的工作质量进行了一些讨论 他们很
  • 线程、进程和 Application.Exit()

    我的应用程序由主消息循环 GUI 和线程 Task Factory 组成 在线程中我调用一些第三方应用程序var p new Process 但是当我调用Application Exit 在消息循环中 我可以看到在线程中启动的进程仍在内存中
  • 是否有比 lex/flex 更好(更现代)的工具来生成 C++ 分词器?

    我最近将源文件解析添加到现有工具中 该工具从复杂的命令行参数生成输出文件 命令行参数变得如此复杂 以至于我们开始允许它们作为一个文件提供 该文件被解析为一个非常大的命令行 但语法仍然很尴尬 因此我添加了使用更合理的语法解析源文件的功能 我使
  • .NET 选项将视频文件流式传输为网络摄像头图像

    我有兴趣开发一个应用程序 它允许我从 xml 构建视频列表 包含视频标题 持续时间等 并将该列表作为我的网络摄像头流播放 这意味着 如果我要访问 ustream tv 或在实时通讯软件上激活我的网络摄像头 我的视频播放列表将注册为我的活动网
  • C 中的位移位

    如果与有符号整数对应的位模式右移 则 1 vacant bit will be filled by the sign bit 2 vacant bit will be filled by 0 3 The outcome is impleme
  • 可空属性与可空局部变量

    我对以下行为感到困惑Nullable types class TestClass public int value 0 TestClass test new TestClass Now Nullable GetUnderlyingType
  • 将日期参数传递给对 MVC 操作的 ajax 调用的安全方法

    我有一个 MVC 操作 它的参数之一是DateTime如果我通过 17 07 2012 它会抛出一个异常 指出参数为空但不能有空值 但如果我通过01 07 2012它被解析为Jan 07 2012 我将日期传递给 ajax 调用DD MM
  • 作为字符串的动态属性名称

    使用 DocumentDB 创建新文档时 我想设置属性名称动态地 目前我设置SomeProperty 像这样 await client CreateDocumentAsync dbs db colls x new SomeProperty
  • 在Linux中使用C/C++获取机器序列号和CPU ID

    在Linux系统中如何获取机器序列号和CPU ID 示例代码受到高度赞赏 Here http lxr linux no linux v2 6 39 arch x86 include asm processor h L173Linux 内核似
  • Spring Boot MSSQL Kerberos 身份验证

    目前在我的春季靴子中application properties文件中 我指定以下行来连接到 MSSql 服务器 spring datasource url jdbc sqlserver localhost databaseName spr
  • 窗体最大化时自动缩放子控件

    有没有办法在最大化屏幕或更改分辨率时使 Windows 窗体上的所有内容自动缩放 我发现手动缩放它是正确的 但是当切换分辨率时我每次都必须更改它 this AutoScaleDimensions new System Drawing Siz
  • 如何将字符串“07:35”(HH:MM) 转换为 TimeSpan

    我想知道是否有办法将 24 小时时间格式的字符串转换为 TimeSpan 现在我有一种 旧时尚风格 string stringTime 07 35 string values stringTime Split TimeSpan ts new
  • 为什么 strtok 会导致分段错误?

    为什么下面的代码给出了Seg 最后一行有问题吗 char m ReadName printf nRead String s n m Writes OK char token token strtok m 如前所述 读取字符串打印没有问题 但

随机推荐

  • 日期时间的 SSIS 源格式隐式转换

    有谁知道有一个图表可以显示 SSIS 中不同数据类型支持哪些日期格式 例如 是否DT DBTimestamp支持格式1 Jan 我尝试寻找但找不到任何东西 我问的原因是我发现当我尝试做一个Convert datetime 1 Jan 它失败
  • 为什么我不能在 Scala 子类中分配给 var?

    假设我有以下抽象类 abstract class A var is happy Boolean def toggle happiness 现在我想定义一个具体的类来实现toggle happiness method class B is h
  • 无法使用 Bouncy Castle 与 Xamarin 和 Java Server 从流读取(IOException:非阻塞套接字会阻塞)

    先决条件 我正在使用 Xamarin 编写一个移动应用程序 该应用程序应该与 java 服务器交换小消息块 我使用 Bouncy Castle 的 NET 实现通过 TLS 发送数据 因为我仅限于特定的密码套件 TLS ECDH anon
  • 为什么 08 在 Java 中不是有效的整数文字?

    Why is 08被认为是超出范围的 int 但07而下面不是吗 在 Java 和其他几种语言中 以0被解释为八进制 基数为 8 数量 对于个位数 除08 and 09 这是不允许的 结果是相同的 所以您可能没有注意到它们被解释为八进制 但
  • 为什么我会收到“不兼容的类型:对象无法转换为字符串”?

    我正在尝试使用最简单的代码从 Android 应用程序调用 Web API REST 方法 以及我找到的代码here http www speakingcode com 2012 09 10 how to consume data from
  • 读取 R 中的有向图

    我在阅读 创建有向图时遇到问题 我按照我找到的步骤进行操作here http www ats ucla edu stat r faq snplot htm 这是我的文本文件图 txt 1 2 1 3 2 5 3 4 3 5 4 5 5 6
  • 如何仅在赋值时实现嵌套字典的自动生存?

    TL DR 在为子键分配值时 如何让超级键在 Python 字典中自动激活 而不在检查子键时也让它们自动激活 背景 通常在Python中 在嵌套字典中设置值需要在分配给子键之前手动确保更高级别的键存在 那是 my dict 1 2 3 如果
  • 在 SuiteScript 中设置国家/地区

    我需要从销售订单上的自定义字段设置采购订单上的发货国家 地区 根据 NS 文档 记录浏览器 该字段是文本 但在 UI 中显然它是一个下拉菜单 在架构浏览器中 它引用国家 地区列表 其中值为 unitedStates 等 我尝试将其设置为 U
  • 如何实现CSS边框角倒角而不是圆角?

    通过CSSborder radius属性我可以在末尾有一个弯曲的圆角边框 boxLeft border right 1px dashed 333 border bottom 1px dashed 333 border radius 0 0
  • 删除 YouTube 观看稍后播放列表项目失败 - 返回 404

    我有代码可以从我的 youtube watch Later 播放列表中删除一个项目 大约两周前 这一切都正常 现在我从 YouTube 收到 404 错误 这是请求和响应的序列 当然 身份验证详细信息已被删除 获取播放列表项请求 GET 获
  • Angular 2 如何模糊按钮返回时的输入?

    如何模糊input按本机键盘返回button在移动 例如
  • XCode 4.2 版本检查器隐藏情节提要

    我不确定其他人是否遇到这个问题 但是当我单击 XCode 中的 版本编辑器 按钮时 我的 Storyboard 切换到 XML 视图 并且我不知道如何恢复可视化编辑器 有人可以帮忙吗 我真的希望这只是深夜编码困倦的结果 提前致谢 右键单击
  • AddressBook:如何获取不同 Exchange 源的名称

    我想要获取我的 iPhone 同步到的所有 Exchange 源的名称 例如如果我使用 ActiveSync Exchange 将我的设备同步到 Gmail 和 Hotmail 帐户 在本机联系人中 我可以根据我设置的不同帐户看到不同的部分
  • 是否有涵盖 iPhone、Android、WebOS 和 Blackberry OS 的 jQ Touch 等效产品?

    我即将开始使用 HTML5 CSS3 和 JavaScript 为最新的智能手机编写一个 Web 应用程序 我需要的不是框架 而是像 jQuery 这样的库 我研究了 jQTouch 它非常适合 iPhone 显然也支持 Android 但
  • JBoss JAAS 自定义登录模块

    我正在尝试使用自定义JAAS托管的基于 Web 的应用程序的身份验证模块JBoss 5 1 0 GA 所以一切似乎都工作正常 直到用户数量增加并且会话 它认为 开始变得混合 我使用自定义 JAAS 的原因是因为自定义身份验证后端以及需要传回
  • PHP 5 反射 API 性能

    我目前正在考虑在我自己的 MVC Web 框架中使用 Reflection 类 主要是 ReflectionClass 和 ReflectionMethod 因为我需要自动实例化控制器类并调用它们的方法 而无需任何所需的配置 约定优于配置
  • Telegram 机器人键盘通过 JSON 发送

    我正在使用 MS Bot 框架 我想向用户发送自定义键盘 因此我尝试使用以下 JSON 回复消息 public async Task
  • Django 查询集上的 Count() 与 len()

    在 Django 中 鉴于我有QuerySet我要迭代并打印结果 计算对象的最佳选择是什么 len qs or qs count 另外考虑到在同一迭代中计算对象也不是一种选择 虽然Django 文档 https docs djangopro
  • 如何在 Django 中实现 Northwind

    我正在尝试使用 Django admin 在 MySQL 中实现 Northwind 数据库模型来显示数据 有人知道如何从原始模型中 干净 地做到这一点吗 是否有任何功能实现可供下载 模型 管理 接下来是完全未经尝试的程序 不确定你所说的
  • 实体框架 6 Code First int Identity 列值第一行为零

    首次执行 update database 命令以使用种子数据填充数据库后 发现所有 int Id 列均以零 0 开头 而不是预期的一 1 在 Configuration cs 中的 Seed 方法顶部为每个实体 表添加了以下 2 行代码 注