code first , Migration
文章引用至: https://www.cnblogs.com/panchunting/p/entity-framework-code-first-migrations.html
随着业务的增加, 之前code first创建的表可能已经不能满足需求, 比如增加一个字段, 这样就出来了‘Migrations’
第一步:
- 在 Package Manager Console 下运行命令 Enable-Migrations
需要熟悉的命令有:
- Add-Migration 将 scaffold 创建下一次基于上一次迁移以来的更改的迁移;
- Update-Databse 将任何挂起的迁移应用到数据库
《1》: 新增字段: ‘Url’
1. console输入: Add-Migration AddNewUrl
2. 会看到产生一个新的cs文件

完善方法中的内容: (新增字段的类型需要自己定义, 如果为int型, 就是'c=>c.Int()')
public partial class AddNewUrl : DbMigration
{
public override void Up()
{
AddColumn("dbo.News", "Url", c => c.String());
} public override void Down()
{
DropColumn("dbo.News", "Url");
}
}
《2》 删除字段
1. console输入: Add-Migration DeleteNewUrl
2. 对应产生文件,完善文件中的方法
public partial class DeleteNewUrl : DbMigration
{
public override void Up()
{
DropColumn("dbo.News", "Url");
} public override void Down()
{
}
}
3 执行更新 : Update-Database
《3》修改字段 类型
1. console输入: Add-Migration UpdateRatingUrl
2. 对应产生文件,完善文件中的方法
public partial class UpdateRatingUrl : DbMigration
{
public override void Up()
{
AlterColumn("dbo.News", "Rating", c => c.String());
} public override void Down()
{
}
}
3 执行更新 : Update-Database
《4》新增一个集合
1. console输入: Add-Migration AddTagModel
2. 对应产生文件,完善文件中的方法
public partial class AddTagModel : DbMigration
{
public override void Up()
{
CreateTable("dbo.Tags", c => new
{
TagId = c.Int(nullable: false, identity: true),
TagName = c.String(maxLength: ),
NewId = c.Int(nullable: false)
}).PrimaryKey(t => t.TagId)
.ForeignKey("dbo.News", t => t.NewId, cascadeDelete: true)
.Index(t => t.NewId)
.Index(p => p.TagName, unique: true);
} public override void Down()
{
DropIndex("dbo.Tags", new[] { "TagName" });
DropForeignKey("dbo.Tags", "NewId", "dbo.News");
DropIndex("dbo.Tags", new[] { "NewId" });
DropTable("dbo.Tags");
}
}
3 执行更新 : Update-Database
4 执行结果

code first , Migration的更多相关文章
- EF Code First Migration总结
开启Migration 1. 通过 Tools->Nuget Package Manager->Package Manager Console 打开Package Manager Cons ...
- Some lines about EF Code First migration.
Some lines about EF Code First migration: 一. 模型设计 1. 遵循EF标准,注意表关系配对 2. 数据模型里尽量把必须的属性和说明都写全 3. EF默认id ...
- MVC - Code First Migration Command line
当开发MVC应用程序, 使用.NET Entity Framework的Code First model试, 若是需要将model层对象的改动更新进数据库, 需要使用Package Manager C ...
- 解决code first Migration 增加外键时出现错误的问题
先上模型 Comment public class Comment { [Key] public int CommentId { get; set; } [Required] public int S ...
- 创建ASP.NET Core MVC应用程序(3)-基于Entity Framework Core(Code First)创建MySQL数据库表
创建ASP.NET Core MVC应用程序(3)-基于Entity Framework Core(Code First)创建MySQL数据库表 创建数据模型类(POCO类) 在Models文件夹下添 ...
- Entity Framework Code First 学习
1.添加entityframework 项目-管理解决方案的 NuGet 程序包-联机-Entity Framework 2.code first Migration 工具->库程序包管理器-& ...
- MVC 5 的 EF6 Code First 入门
英文渣水平,大伙凑合着看吧…… 这是微软官方SignalR 2.0教程Getting Started with Entity Framework 6 Code First using MVC 5 系列 ...
- 在Code First中使用Migrations对实体类和数据库做出变更
在Code First中使用Migrations对实体类和数据库做出变更,Mirgration包含一系列命令. 工具--库程序包管理器--程序包管理器控制台 运行命令:Enable-Migration ...
- C# ORM—Entity Framework 之Code first(代码优先)(二)
一.Entity Framework Code first(代码优先)使用过程 1.1Entity Framework 代码优先简介 不得不提Entity Framework Code First这个 ...
随机推荐
- OpenCV中 常用 函数 的作用
1.CV_Assert函数作用: CV_Assert()若括号中的表达式值为false,则返回一个错误信息.
- redis读书笔记
1.redis两种存储机制(持久化) Redis的存储机制分为:Snapshot和AOF 都先将内存存储在内存中. (1)Snapshot当数据累计到一定的阈值,就会触发dump将数据一次性写入到数据 ...
- 域名动态解析到动态IP
一般宽带用户的IP都是动态IP,重连之后IP可能会发生变化. 如果想在其他地方连接家里的设备,或者在家中搭建服务器,就会受到影响. 现在提供一种动态解析域名的方式,只要检测到IP的变化,那么就调用阿里 ...
- Android 开发 音视频从入门到提高 任务列表 转载
<Android 音视频从入门到提高 —— 任务列表> 1. 在 Android 平台绘制一张图片,使用至少 3 种不同的 API,ImageView,SurfaceView,自定义 Vi ...
- 常见java日志系统的搭配详解:关于slf4j log4j log4j2 logback jul jcl commons-logging jdk-logging
先看一张图: 是不是有点晕, 晕就对了.这个仅仅是 slf4j 的情况,实际上, 我们不仅要接触到 slf4j ,有时候还会接触其他的日志系统.且看下文分解. 1 直接使用各个日志系统 1.1 直接使 ...
- HTML一片空白, 无法渲染: Empty tag doesn't work in some browsers
html 文件直接引入一个script, 如下 <html> <head> <script type="application/javascript" ...
- HDU - 3567
https://cn.vjudge.net/problem/HDU-3567 #include <stdio.h>#include <math.h>#include <q ...
- websocket的子协议stomp协议
stomp协议Spring实现 服务器注册EndPoint 用来与客户端建立websocket连接 websocket连接的建立应该与客户端与服务器之间的通道无关 jdk中 javax下的websoc ...
- C语言语法
1.函数指针类型定义,然后指针结构体类型定义,最后的调用形式为aaa.bbb();(aaa为结构体变量)或者 aaa->bbb();(aaa为结构体指针),函数指针最好用结构体封装起来变成指针结 ...
- 2017-11-11 Sa Oct How to open a browser in Python
2017-11-11 Sa Oct How to open a browser in Python python -m webbrowser "http://www.example.com/ ...