EFCore2.0 Code First基本使用
前言
在网上找EFCore Code First相关的文章,很多都是基于core 1.0版本的,觉得有必要自己实践下2.0。所以,撸起袖子干吧!~
1.新建控制台项目(这里就不放图了)
2.打开程序包管理器控制台。工具->NuGet包管理器->程序包管理器控制台
Install-Package Microsoft.EntityFrameworkCore
Install-Package Microsoft.EntityFrameworkCore.SqlServer
Install-Package Microsoft.EntityFrameworkCore.Tools
依次安装以上三个Nuget包
3.新建User类:
public class User
{
public int Id { get; set; }
[MaxLength(30), Required]
public string Account { get; set; }
[MaxLength(30), Required]
public string Password { get; set; }
}
public class TestDbContext : DbContext
{
public DbSet<User> User { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer(
"Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=TestDB;Data Source=.");//数据库连接字符串,其中TestDB是数据库名称
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<User>().HasIndex(u => u.Account).IsUnique();
}
}
4.初始化,生成数据库
在程序包管理器控制台依次执行以下命令
Add-Migration Init //其中Init是你的版本名称
update-database Init //更新数据库操作 init为版本名称
执行完以上操作后,数据库就创建成功了。

4.数据库修改
在我们实际开发的过程中,经常性的会修改字段,那在code First中如何处理呢?
实例:将User类的Password的长度修改为15
public class User
{
public int Id { get; set; }
[MaxLength(30), Required]
public string Account { get; set; }
[MaxLength(15), Required]
public string Password { get; set; }
}
控制台运行:
Add-Migration EditPwdLength //同上,不在解释
update-database EditPwdLength
运行成功后,刷新数据库查看

好了。到这里基本就是使用EF Core CodeFirst的基本操作了。其他高深的操作,LZ也在学习!~权当记录吧。
参考
问题
1.在实际生产环境中,我们是不可能直接在本地去更新数据库的,需要生成Sql脚本,在服务器上运行。至于如何生成脚本,LZ也还没找到,希望大佬们能给方案。
生成脚本方案 2017年12月31日14:26:01
update-database script EditPwdLength
EFCore2.0 Code First基本使用的更多相关文章
- MVC3+EF5.0 code first+Flexigrid+ajax请求+jquery dialog 增删改查
MVC3+EF5.0 code first+Flexigrid+ajax请求+jquery dialog 增删改查 本文的目的: 1.MVC3项目简单配置EF code first生成并初始化数据 ...
- DotNetCore跨平台~EFCore2.0连接Mysql的烦恼-已解决
回到目录 对于传统的nuget包,我们习惯上用官方或者大型组织的,因为它们比较考靠谱,但就在前两天.net core2.0发布后,我把efcore也升级到2.0了,mysql.EfCore也升级到支持 ...
- MVC5+EF6 完整教程17--升级到EFCore2.0(转)
MVC5+EF6 完整教程17--升级到EFCore2.0 2017年08月22日 14:48:12 linux12a 阅读数:2814 EF Core 2.0上周已经发布了,我们也升级到core ...
- EF切EFCore2.0存储过程问题
在从EF切换成EFCore2.0的过程中,遇到了存储过程的实现问题. 在EF中调用存储过程,非常方便,能够直接将结果转换成对应的结果类. 如代码中的Database.SqlQuery<TElem ...
- Entity Framework 5.0 Code First全面学习
摘自:http://blog.csdn.net/gentle_wolf/article/details/14004345 不贴图片了,太累. Code First 约定 借助 CodeFirst,可通 ...
- EntityFramework 6.0< Code First > 连接 Mysql数据库(转)
http://blog.csdn.net/kmguo/article/details/19650299 网上有很多关于用EntityFrame来连接Mysql数据库的教程,可是很多并不靠谱,转载的太多 ...
- EntityFramework 6.0< Code First > 连接 Mysql数据库
网上有很多关于用EntityFrame来连接Mysql数据库的教程,可是很多并不靠谱,转载的太多了.找了很久,总算是配置好了,现在分享一下. 一,安装: 1.开发环境: VS2013与EF6 ...
- 转载:EntityFramework 6.0< Code First > 连接 Mysql数据库
转载自:http://blog.csdn.net/kmguo/article/details/19650299 网上有很多关于用EntityFrame来连接Mysql数据库的教程,可是很多并不靠谱,转 ...
- .net core 2.0 Code First Fluent API配置
A.net core 2.0新特性支持通过IEntityTypeConfiguration<>添加Code First配置到一个封装类. 新建目标框架为.NET Core类库 新建完了以后 ...
随机推荐
- 前端的UI设计与交互之色彩篇
一.颜色Red热情.警示 Green成功.通过.安全 Blue专业.科技 Pink典雅.明快.女性 Orange醒目.温暖 Purple高雅.浪漫 Yellow活力.提示 Cyan清新.冷静.结构化 ...
- 06.十分钟学会表达式语言EL
一. 概念:MVC设计模式一个主要好处就是让jsp中的代码越来越来少,而且规定只能出现三种代码:接收属性,判断语句,迭代输出.但是,在开发中,jsp输出至少还是需要接受VO对象的,这时候为了避免导入V ...
- winscp连接虚拟机Linux被拒绝的问题解决方案
输入了正确的账号密码还出现这个错误 我们需要在虚拟机中配置一下,改成这样就行了
- 【Win 10 应用开发】UI Composition 札记(六):动画
动画在 XAML 中也有,而且基本上与 WPF 中的用法一样.不过,在 UWP 中,动画还有一种表现方式—— 通过 UI Composition 来创建. 基于 UI Composition 的动画, ...
- Python待分析的模块
fcntl 文件控制模块 http://docs.python.org/2.7/library/fcntl.html#module-fcntl struct 二进制文本处理模块 http://docs ...
- 【转】Entity Framework 5.0系列之约定配置
Code First之所以能够让开发人员以一种更加高效.灵活的方式进行数据操作有一个重要的原因在于它的约定配置.现在软件开发越来复杂,大家也都试图将软件设计的越来越灵活,很多内容我们都希望是可配置的, ...
- TensorFlow简易学习[2]:实现线性回归
上篇介绍了TensorFlow基本概念和基本操作,本文将利用TensorFlow举例实现线性回归模型过程. 线性回归算法 线性回归算法是机器学习中典型监督学习算法,不同于分类算法,线性回归的输出是整个 ...
- 拼写纠错的利器,BK树算法
BK树或者称为Burkhard-Keller树,是一种基于树的数据结构,被设计于快速查找近似字符串匹配,比方说拼写纠错,或模糊查找,当搜索”aeek”时能返回”seek”和”peek”. 本文首先剖析 ...
- 安装freemarker模板的ftl插件
安装freemarker模板的ftl插件 同意协议 等待运行完成 重新启动eclipse 查看是否生效
- 带参数的Mixin
带参数的mixin 在Less中,还可以像函数一样定义一个带参数的mixin, 这种形式叫做 Parametric Mixin,即带参数的混入.如: // 定义一个样式选择器 .borderRadiu ...