Entity Framework教程-初始化数据
更新记录
转载请注明出处:
2022年10月24日 发布。
2022年10月22日 从笔记迁移到博客。
初始化数据说明
初始化数据也叫种子数据,用于定义初始化到数据库中的数据
定义初始化数据
在DbContext类型中的ModelCreating方法中进行设置初始化数据
使用HasData方法即可
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<PandaEntity>().HasData(
new PandaEntity()
{
Id = 666,
Name = "Panda",
DateTime = DateTime.Now
}
);
}
与DbContext类型分离
将大量的初始化数据写在DbContext类型中不合适,不便于日后的维护
所以定义一个DbContext类型的扩展方法进行创建初始化数据
定义一个ModelBuilderExtensions.cs文件,本质就是扩展方法类
using System;
using Microsoft.EntityFrameworkCore;
namespace ConsoleApp1
{
public static class ModelBuilderExtensions
{
public static void SeedData(this ModelBuilder modelBuilder)
{
modelBuilder.Entity<PandaEntity>().HasData(
new PandaEntity()
{
Id = 888,
Name = "Panda666",
DateTime = DateTime.Now
}
);
modelBuilder.Entity<PandaEntity>().HasData(
new PandaEntity()
{
Id = 999,
Name = "Dog666",
DateTime = DateTime.Now
}
);
}
}
}
然后在DbContext类中的OnModelCreating方法中调用
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
//生成初始化数据
modelBuilder.SeedData();
}
本文来自博客园,作者:重庆熊猫,转载请注明原文链接:https://www.cnblogs.com/cqpanda/p/16815265.html