c# - 如何在 Entity Framework Core 2 中播种?

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

我有两个表,我想用种子填充它们。

我在 Ubuntu 中使用 ASP.NET Core 2。

如何填充通过外键连接到另一个表的两个表的数据?

Flowmeter有很多注释,注释属于Flowmeter。

我想做这样的事情,但它应该存储在数据库中:

new Flowmeter 
{
    Make = "Simple model name",
    SerialNum = 45, 
    Model = "Lor Avon", 
    Notes = new List<Note>()
    {
        new Note() { Value = 45, CheckedAt = System.DateTime.Now },
        new Note() { Value = 98, CheckedAt = System.DateTime.Now }
    }
}

最佳答案

Entity Framework Core 2.1 开始,现在有一种新的数据播种方法。在您的 DbContext 类中覆盖 OnModelCreating:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<Blog>().HasData(new Blog { BlogId = 1, Url = "http://sample.com" });
}

对于相关实体,使用匿名类并指定相关实体的外键:

modelBuilder.Entity<Post>().HasData(
    new {BlogId = 1, PostId = 1, Title = "First post", Content = "Test 1"},
    new {BlogId = 1, PostId = 2, Title = "Second post", Content = "Test 2"});

重要提示:请注意,在 OnModelCreating 方法和 Update-Database 中输入此数据后,您需要运行添加迁移以更新数据。

官方文档已updated .

关于c# - 如何在 Entity Framework Core 2 中播种?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45148389/

相关文章:

c# - 适用于移动应用程序 (Android/iOS) 的 Xamarin 中的 DataGridView

c# - 如何通过堆栈跟踪访问本地人? (模仿动态作用域)

c# - 如何从通过 API 返回的 Task<IActionResult> 获取值进行单元测试

c# - 如何在 Database.EnsureCreated() EF Xamarin.Forms 之后使用 Database.Migration()

c# - EF Core 中返回多个结果集的映射存储过程

c# - 如何管理 catch block c# 中的异常?

c# - 需要从 MVC 中的 View 访问主布局控件

c# - 如何从 Microsoft.AspNetCore.All 元包中删除额外的引用

.net-core - dotnetcore 和 kestrel 出现 Nancy 500 服务器错误

sqlite - EF Core 中每隔一个数据行都有一个空关系