第一篇:来自 .net 开发菜鸟 博主的文章:https://www.cnblogs.com/dotnet261010/p/8035213.html

第二篇:来自 JustYong 博主的文章:https://www.cnblogs.com/JustYong/p/5970683.html

感谢两位博主贡献精彩文章,感谢分享。

自己公司使用的开发框架,每次使用都要手动的把一些公共的数据添加进去,感觉很麻烦,所以就查了一下 “ 如何填充种子数据” ,看了以上的文章,很受益。

在Migrations文件夹下的 数据迁移配置文件  Configuration.cs 下的 Seed()函数中添加种子数据,代码如下,亲测针对本公司框架使用无误:

namespace ORM.Migrations
{
using Modules;
using System;
using System.Data.Entity;
using System.Data.Entity.Migrations;
using System.Linq; public sealed class Configuration : DbMigrationsConfiguration<ORM.MyDbContext>
{
public Configuration()
{
AutomaticMigrationsEnabled = true;
AutomaticMigrationDataLossAllowed = true;
ContextKey = "ORM.MyDbContext";
} protected override void Seed(ORM.MyDbContext context)
{
// This method will be called after migrating to the latest version. // You can use the DbSet<T>.AddOrUpdate() helper extension method
// to avoid creating duplicate seed data.
var pId = Guid.NewGuid();
int orderNumber = ;
var sysMenuSet = new Menu()
{
Id = pId,
ParentId = null,
Name = "系统设置",
Url = null,
IconClass = null,
OrderNumber = orderNumber
};
var menuSet = new Menu()
{
Id = Guid.NewGuid(),
ParentId = pId,
Name = "菜单设置",
Url = "Menu/Index",
IconClass = null,
OrderNumber = orderNumber
};
var dicitemSet = new Menu()
{
Id = Guid.NewGuid(),
ParentId = pId,
Name = "字典设置",
Url = "Dic/Index",
IconClass = null,
OrderNumber = orderNumber
};
var userSet = new Menu()
{
Id = Guid.NewGuid(),
ParentId = pId,
Name = "账户设置",
Url = "User/Index",
IconClass = null,
OrderNumber = orderNumber
};
var empolyeeSet = new Menu()
{
Id = Guid.NewGuid(),
ParentId = pId,
Name = "用户管理",
Url = "Employee/Index",
IconClass = null,
OrderNumber = orderNumber
};
var roleSet = new Menu()
{
Id = Guid.NewGuid(),
ParentId = pId,
Name = "角色管理",
Url = "Role/Index",
IconClass = null,
OrderNumber = orderNumber
};
var departmentSet = new Menu()
{
Id = Guid.NewGuid(),
ParentId = pId,
Name = "部门管理",
Url = "Department/Index",
IconClass = null,
OrderNumber = orderNumber
};
var tagSet = new Menu()
{
Id = Guid.NewGuid(),
ParentId = pId,
Name = "标签管理",
Url = "Tag/Index",
IconClass = null,
OrderNumber = orderNumber
};
var funcSet = new Menu()
{
Id = Guid.NewGuid(),
ParentId = pId,
Name = "权限管理",
Url = "Func/Index",
IconClass = null,
OrderNumber = orderNumber
};
context.Menus.Add(sysMenuSet);
context.Menus.Add(menuSet);
context.Menus.Add(dicitemSet);
context.Menus.Add(roleSet);
context.Menus.Add(userSet);
context.Menus.Add(empolyeeSet);
context.Menus.Add(departmentSet);
context.Menus.Add(tagSet);
context.Menus.Add(funcSet);
base.Seed(context);
}
}
}

(转载)EF 使用code first模式创建数据库和 填充种子数据的更多相关文章

  1. EntityFramework使用Code First模式创建数据库控制生成单数形式的表名

    使用Code-First模式生成数据库时,默认生成的数据库表的名称为类型的复数形式,例如实体类名称是"User",默认生成的数据库表名为“Users”,多数情况下我们并不想生成的数 ...

  2. 使用EF的Code First模式创建模型

    Entity Framework Core Entity Framework (EF) Core 是轻量化.可扩展.开源和跨平台版的常用 Entity Framework 数据访问技术. EF Cor ...

  3. 使用MVC5+Entity Framework6的Code First模式创建数据库并实现增删改查功能

    此处采用VS2017+SqlServer数据库 一.创建项目并引用dll: 1.创建一个MVC项目 2.采用Nuget安装EF6.1.3 二.创建Model 在models文件夹中,建立相应的mode ...

  4. 8天掌握EF的Code First开发系列之3 管理数据库创建,填充种子数据以及LINQ操作详解

    本文出自8天掌握EF的Code First开发系列,经过自己的实践整理出来. 本篇目录 管理数据库创建 管理数据库连接 管理数据库初始化 填充种子数据 LINQ to Entities详解 什么是LI ...

  5. Code First开发系列之管理数据库创建,填充种子数据以及LINQ操作详解

    返回<8天掌握EF的Code First开发>总目录 本篇目录 管理数据库创建 管理数据库连接 管理数据库初始化 填充种子数据 LINQ to Entities详解 什么是LINQ to ...

  6. Entity Framework应用:使用Code First模式管理数据库创建和填充种子数据

    一.管理数据库连接 1.使用配置文件管理连接之约定 在数据库上下文类中,如果我们只继承了无参数的DbContext,并且在配置文件中创建了和数据库上下文类同名的连接字符串,那么EF会使用该连接字符串自 ...

  7. EF core (code first) 通过自动迁移实现多租户数据分离 :按Schema分离数据

    前言 本文是多租户系列文章的附加操作文章,如果想查看系列中的其他文章请查看下列文章 主线文章 Asp.net core下利用EF core实现从数据实现多租户(1) Asp.net core下利用EF ...

  8. Entity Framework应用:使用EF的DataBase First模式实现数据库的增删改查

    在上一篇文章中讲解了如何生成EF的DBFirst模式,接下来讲解如何使用DBFirst模式实现数据库数据的增删改查 一.新增数据 新增一个Student,代码如下: static void Add() ...

  9. 使用Entity Framework通过code first方式创建数据库和数据表

    开发环境 WIN10 Entity Framework6.0  MVC5.0  开发工具 VS2015  SqlServer2012 1.创建上下文Context继承DbContext,并创建其他的业 ...

随机推荐

  1. restorator 运行后其他所有EXE文件都无法运行的解决方案

    昨天要反编译一个EXE,用RESTORATOR来查看资源罗列情况,倒霉的事情发生了,所有EXE文件点右键后‘打开’都没有了,刚开始以为中度了,进安全模式看,发现文件都没有异常,并且在安全模式下问题照样 ...

  2. [bzoj1033] [ZJOI2008]杀蚂蚁antbuster

    Description 最近,佳佳迷上了一款好玩的小游戏:antbuster.游戏规则非常简单:在一张地图上,左上角是蚂蚁窝,右下角是蛋糕,蚂蚁会源源不断地从窝里爬出来,试图把蛋糕搬回蚂蚁窝.而你的任 ...

  3. hdu 6010 路径交

    hdu 6010 路径交(lca + 线段树) 题意: 给出一棵大小为\(n\)的树和\(m\)条路径,求第\(L\)条路径到第\(R\)条路径的交的路径的长度 思路: 本题的关键就是求路径交 假设存 ...

  4. BZOJ3990 排序(sort)

    排序(sort) 题目描述 小A有一个1~2N的排列A[1..2N],他希望将数组A从小到大排序.小A可以执行的操作有N种,每种操作最多可以执行一次.对于所有的i(1<=i<=N),第i种 ...

  5. WebStrom Sass 编译配置 windows

    第一步: 先安装Ruby下载 一路next 安装完成后打开开始菜单 打开后输入 gem install sass sass -v 出现版本号说明成功 第二部配置webstorm 在webstorm中s ...

  6. 论文笔记《Tracking Using Dynamic Programming for Appearance-Based Sign Language Recognition》

    一.概述 这是我在做手势识别的时候,在解决手势画面提取的时候看的一篇paper,这里关键是使用了动态规划来作为跟踪算法,效果是可以比拟cameshift和kf的,但在occlusion,gaps或者离 ...

  7. 结构型设计模式之代理模式(Proxy)

    结构 意图 为其他对象提供一种代理以控制对这个对象的访问. 适用性 在需要用比较通用和复杂的对象指针代替简单的指针的时候,使用P r o x y 模式.下面是一 些可以使用P r o x y 模式常见 ...

  8. ios 改变图片大小缩放方法

    http://www.cnblogs.com/zhangdadi/archive/2012/11/17/2774919.html http://bbs.csdn.net/topics/39089858 ...

  9. F28379D烧写双核程序(在线&离线)

    烧写双核程序前需知在分别对F28379D的CPU1和CPU2两个核进行烧写程序时,需要在CCS中建立两个工程,独立编写两个核的程序.如controlSUITE中提供的双核程序例程: 1. 在线1.1 ...

  10. python的递归算法学习(3):汉诺塔递归算法

    汉诺塔问题是递归函数的经典应用,它来自一个古老传说:在世界刚被创建的时候有一座钻石宝塔A,其上有64个金蝶.所有碟子按从大到小的次序从塔底堆放至塔顶.紧挨着这座塔有另外两个钻石宝塔B和C.从世界创始之 ...