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
版权:本作品采用「不论是否商业使用都不允许转载,否则按3元1字进行收取费用」许可协议进行许可。
本文来自博客园,作者:重庆熊猫,转载请注明原文链接:https://www.cnblogs.com/cqpanda/p/16815265.html
Buy me a cup of coffee ☕.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现