c# - 使用迁移 Entity Framework Core 添加数据而不指定 id

标签 c# .net-core entity-framework-core

我想使用 EF 迁移在我的数据库中添加一些数据。事实上,所有 Id 都是自动生成的。我找到了使用 EF Core 实现它的标准方法,如下所示

modelBuilder.Entity<TypeNote>()
    .HasData(
    new TypeNote { Id = 1, Name = "General" },
    new TypeNote { Id = 2, Name = "E-mail" },
    new TypeNote { Id = 3, Name = "Meeting" },
    new TypeNote { Id = 4, Name = "Reminder" },
    new TypeNote { Id = 5, Name = "Telephone" },
    new TypeNote { Id = 6, Name = "Visit" }
);

我这里的问题是我不想指定 Id,但似乎没有其他方法可以使用 HasData 方法。

您知道另一种使用迁移在数据库中添加数据的方法吗?

最佳答案

我找到了一种在迁移期间进行插入的方法:

        migrationBuilder.InsertData(
            table: "TypeNote",
            columns: new[] { "Name" },
            values: new object[,]
            {
                { "Test" },
                { "Test1" }
        });

事实上,我想在迁移中访问 dbContext。这是不可能的,因为数据库正在更新。

关于c# - 使用迁移 Entity Framework Core 添加数据而不指定 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52382691/

相关文章:

用于 dotnet 测试的 Jenkins 集成

c# - 当我使用 [HttpGet ("public-profile/{avatarName}")] 时如何在 asp.net-core 中 RedirectToAction

.net-core - 可以使用 Microsoft.Extensions.Configuration 绑定(bind)的 TimeSpan 的 Json 格式

c# - DbContext 的良好用法

c# - Asp.net mvc 4 如何使用带有自定义字段的 WebSecurity.createUserAndAccount

c# - ASP.NET Web 应用程序中的动态图像

c# - 以线程安全的方式使用 DbContext 进行异步搜索

c# - 为什么在使用 .NET Core 而不是 .NET 常规或 SSMS 时,SqlClient/SqlConnection 查询(ExecuteScalar 或 ExecuteReader)会超时?

c# - 如何在字符串中嵌入 Razor 变量?

c# - 过度使用 switch 语句开销