基于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(在 ...
随机推荐
- Ubuntu 安装Android Studio与使用手册
用的是Ubuntu 12.04 1.先去下载,国内可以去这里下载 https://github.com/inferjay/AndroidDevTools 2.下载后解压进入android-studio ...
- 【转】Android设计中的.9.png
来源:http://isux.tencent.com/android-ui-9-png.html Android设计中的.9.png 注意:当使用9.png做TextView背景时,一定要设置内容区域 ...
- Lua从入门到精通
1. 入门指南 http://www.cnblogs.com/linbc/archive/2009/06/02/1494622.html
- Poj2948Martian Mining(记忆化)
链接 这题意好难懂 看得迷迷糊糊 想的也迷迷糊糊 后来睡了会突然想到了..不就是类似以前的矩阵操作 从右下角记忆化 大的由小的推来 dp[i][j] = max(dp[i-1][j]+s1,dp ...
- POJ2892Tunnel Warfare (线段树)
http://poj.org/problem?id=2892 记录每个区间端点的左连续及右连续 都是单点更新 用不着向下更新 还简单点 找错找了N久 最后发现将s[w<<1|1]写成s[w ...
- poj 2996 Help Me with the Game(模拟)
题目:http://poj.org/problem?id=2996 题意:给出 棋盘 情况 输出 白棋 和 黑棋在 棋盘上的 白棋为大写字母 黑棋为小写字母 棋盘 左下点为原点(1,a) 输出 是 按 ...
- java中正则表达式
在<java编程思想>中,java中的 \\ 表示“我要插入一个正则表达式的反斜线,所以其后的字符具有特殊的意义.”如果想插入一个普通的反斜线,那么应该使用 \\\\. 理解: 我们使用的 ...
- HDU 5688 Problem D
Problem D Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total S ...
- Web API-如何将Controller的返回值转换成HTTP response消息
https://www.asp.net/web-api/overview/formats-and-model-binding/json-and-xml-serialization https://co ...
- 编译驱动时出现"Cannot open file trace.h"错误
编译驱动时出现"Cannot open file trace.h"错误 如题,用VS2013编译驱动是出现上述错误,原来是开启了WPP追踪导致的: 解决方案: 右键项目名-属性-W ...