基于EF创建数据库迁移
通过创建的实体类和DbContext类利用EF的Code First数据库迁移创建数据库。
下面看代码。
一、先创建实体类
我先添加一个BaseEntity,里面就一个属性
[Key]
public virtual Guid Id { set; get; }
然后User表和Role表
public class Users : BaseEntity
{
public string Name { get; set; }
public Guid RoleId { get; set; }
public virtual Roles Role { get; set; }
}
public class Roles:BaseEntity
{
public string Name { get; set; }
}
二、创建DatabaseContext
public class DatabaseContext : DbContext
{
public DatabaseContext() : base("name=conn")
{ } public virtual DbSet<Users> Users { get; set; }
public virtual DbSet<Roles> Roles { get; set; }
}
这里DbSet添加我要操作的实体。
三、创建Configuration
public class Configuration : DbMigrationsConfiguration<DatabaseContext>
{
public Configuration()
{
AutomaticMigrationsEnabled = false;
ContextKey = "AbpDemo";
} protected override void Seed(DatabaseContext context)
{
//base.Seed(context);
new DefaultRoleAndUserBuilder(context).Build();//后面添加默认数据用的
}
}
添加默认数据用的。比如添加管理员
四、添加默认数据生成类
public class DefaultRoleAndUserBuilder
{
private readonly DatabaseContext _context;
public DefaultRoleAndUserBuilder(DatabaseContext context)
{
_context = context;
} public void Build()
{
CreateUserAndRoles();
} private void CreateUserAndRoles()
{
var adminRole = _context.Roles.FirstOrDefault(x => x.Name == "admin");
if (adminRole == null)
{
adminRole = _context.Roles.Add(new Models.Roles { Id = Guid.NewGuid(), Name = "admin" });
_context.SaveChanges();
} var adminUser = _context.Users.FirstOrDefault(x => x.Name == "admin");
if (adminUser == null)
{
adminUser = _context.Users.Add(new Models.Users { Id = Guid.NewGuid(), Name = "admin", RoleId = adminRole.Id }); _context.SaveChanges();
}
}
}
五、生成数据库
打开程序包管理器控制台,执行命令
add-migration "InitialData"
这是生成的cs文件的后缀名,执行完后会发现Migrations文件夹多了一个文件,但是数据库没有生成,看下图。
继续执行命令
update-database
这样数据库也有了。
基于EF创建数据库迁移的更多相关文章
- asp.net core 系列 20 EF基于数据模型创建数据库
一.概述 本章使用 Entity Framework Core 构建执行基本数据访问的 ASP.NET Core MVC 应用程序.使用迁移(migrations)基于数据模型创建数据库,是一种cod ...
- 20.2.翻译系列:EF 6中基于代码的数据库迁移技术【EF 6 Code-First系列】
原文链接:https://www.entityframeworktutorial.net/code-first/code-based-migration-in-code-first.aspx EF 6 ...
- (17)ASP.NET Core EF基于数据模型创建数据库
1.简介 使用Entity Framework Core构建执行基本数据访问的ASP.NET Core MVC应用程序.使用迁移(Migrations)基于数据模型创建数据库,你可以在Windows上 ...
- EF 创建数据库的策略 codefist加快效率!【not oringin!】
今天去搜寻,ef创建数据库的策略有四种,区分还是和数据库里sql的创建的语句这些英文差不多一致. 一:数据库不存在时重新创建数据库 Database.SetInitializer<testCon ...
- 基于ormlite创建数据库存储数据案例
一直不知道安卓创建数据库存储数据,以前遇到过,但是没有深入研究,今天仔细的看了一下,学习到了一点知识 直接看代码了 public class DatabaseHelper extends OrmLit ...
- .net core2.1 - ef core数据库迁移,初始化种子数据
起因:早上偶然看见一篇文章说是ef core(2.x)使用种子数据,主表子表迁移时候,正常情况下说是无法迁移成功,索性就试试,结果是和ef6的一样,没感觉有什么大的区别.一切OK,见下面内容. 1.首 ...
- EF Core 数据库迁移(Migration)
工具与环境介绍 1.开发环境为vs 2015 2.mysql EF Core支持采用 Pomelo.EntityFrameworkCore.MySql 源代码地址(https://github. ...
- django(django项目创建,数据库迁移)
Django项目的创建与介绍 安装:pip3 install django==1.11 查看版本号:django-admin --version 新建项目: 1.切到目标目录 2.django-adm ...
- MVC学习笔记(二)—用EF创建数据库
1.创建一个空项目 2.在项目中创建EFCore的类库 3.在NuGut控制台为EFCore项目中安装entity 3.1 命令为:Install-Package EntityFramework(在 ...
随机推荐
- c++ 头文件 及 sort
c++ sort :http://www.16kan.com/post/997260.html http://wenku.baidu.com/view/e064166daf1ffc4ffe47ac6 ...
- 取出block所对应的hash值
/**********************************************************************//** Gets the hash value of t ...
- bzoj3142
百度空间发公式太累,给个比较详细的解题链接吧http://www.cnblogs.com/jianglangcaijin/archive/2013/08/13/3254314.html注意M(k-1) ...
- [原]Unity3D深入浅出 - 认识开发环境中的Layers面板
Layers(分层)下拉列表:用来控制Scene视图中游戏对象的显示,在下拉菜单中为勾选状态的物体将显示在Scene视图中. Everything:显示所有的游戏对象 Nothing:不显示任何游戏对 ...
- 西南科技大学第十届ACM程序设计竞赛题解
A.德州扑克 B. 我恨11(1089) 问题描述 11是一个孤独的数字,小明十分讨厌这个数字,因此如果哪个数字中出现了11或者该数字是11的倍数,他同样讨厌这个数字.现在问题来了,在闭区间[L,R] ...
- oracle静态与动态监听
在运行lsnrctl命令的status时,常会看到如下返回值: 服务“test”包含1个例程. 例程"mydata",状态 UNKOWN,包含此服务的一个处理程序... 服务 ...
- tomcat+oracle连接池
tomcat 5.5.23 oracle 10g 全局配置 一.tomcat目录\common\lib下添加包ojdbc14.jar. 二.tomcat目录\conf\server.xml的<G ...
- GRIB格式转换心得(转自博客:http://windforestwing.blog.163.com/blog/static/19545412007103084743804/)
1.wgrib的使用 在cmd命令行下键入wgrib后即可察看wgrib相关命令参数,简要介绍如下: l Inventory/diagnostic–output selections 详 ...
- 彩色网页变黑白色CSS代码变黑白色调!
<style> html { -webkit-filter: grayscale(%); -moz-filter: grayscale(%); -ms-filter: grayscale( ...
- Asp.Net MVC 模型(使用Entity Framework创建模型类) - Part.1
这篇教程的目的是解释在创建ASP.NET MVC应用程序时,如何使用Microsoft Entity Framework来创建数据访问类.这篇教程假设你事先对Microsoft Entity Fram ...