.Net Core 2.0 EntityFrameworkCore CodeFirst入门教程
最近难得有时间闲下来,研究了一下.net core 2.0,总的来说,目前除了一些第三方的库不支持外,基本上可以满足我们的项目需求了!
我们就以一个网站开发为例,搭建一个简单的三层架构,先熟悉一下.net core 2.0的开发流程!
首先,我们新建项目,如图:


然后,我们分别添加.net core类库项目,NetCoreDemo.Repository(数据访问层)和NetCoreDemo.Service(服务层),项目结构如下:

项目中, NetCoreDemo.Repository相当于三层中的DAL层,主要是与数据库交互!为了实现web项目和数据库解耦,方便将来更好数据库,我们在NetCoreDemo.Repository中安装EntiryFrameWorkCore,这里我们以SQL Server为例,安装下面两个安装包,在程序包管理控制台执行以下命名或者用Nuget包管理器安装均可:
Install-package Microsoft.EntityFrameworkCore
Install-package Microsoft.EntityFrameworkCore.SqlServer
然后,我们新建DbContext类,如MyDbContext,继承自DbContext,代码如下:
using Microsoft.EntityFrameworkCore;
using System.ComponentModel.DataAnnotations; namespace NetCoreDemo.Repository
{
public class MyDbContext : DbContext
{
public MyDbContext(DbContextOptions<MyDbContext> options)
: base(options)
{
}
public DbSet<User> Uesrs { get; set; }
}
}
这里,我们新建一个User类作为测试,代码如下:
public class User
{
[Key]
public int Id { get; set; }
public string UserName { get; set; }
public string Password { get; set; }
}
现在,DbContext建好了,下面我们连接数据库,还差一个数据库连接字符串,这个连接字符串我们通常是放在webconfig中的,那么.net core中应该放到哪里呢?
我们来到web项目下,看到有一个appsettings.json,里面内容如下:
{
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Warning"
}
}
}
我们就把数据库连接字符串放到这里吧,改完后,其内容如下:
{
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Warning"
}
},
"ConnectionStrings": {
"SqlServer": "Data Source=.;Initial Catalog=netcore;User Id=sa;Password=123456;"
}
}
既然我们是Code First,下面准备创建数据库,生成表,执行Migration!
我们修改Startup.cs,修改ConfigureServices方法如下:
public void ConfigureServices(IServiceCollection services)
{
var connection = Configuration.GetConnectionString("SqlServer");
services.AddDbContext<MyDbContext>(options =>
options.UseSqlServer(connection, b => b.MigrationsAssembly("NetCoreDemo")));
services.AddMvc();
}
这里需要注意的是,我们通过Configuration方法读取appsetting.json中的连接字符串,然后调用AddDbContext方法,把连接字符串传进去,这里要设置MigrationsAssembly为当前web项目,(这里大家可以试一下不设置这个,会报一个错误),这是因为我们执行Migration是在web项目下,下面我们打开DOS窗口,开始 -> 运行 -> CMD,定位到web项目根目录下,执行如下命令:
dotnet ef migrations add v1
这里,我们看到出现了错误,如图:

这里,我们修改项目文件,在项目上面右键,打开项目文件,如图:

在里面添加如下代码(任意位置均可):
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.1" />
</ItemGroup>
加完后,如图:

然后,我们再次执行命令:
dotnet ef migrations add v1
如果出现Build faild的错误,重新生成一下项目,然后再次执行,执行成功后,如图:

这一步成功了,也就意味着,我们后面的路会很顺利了,下面我们更新到数据库,执行命令:
dotnet ef database update
等待一小会儿,执行成功后,我们会发现数据库中已经生成了我们的数据库和表了,这里我就不截图了,上传图片实在是太慢了~~
上面,我们已经完成了数据库的创建,后面就可以开开心心的写代码了~~
作者:雲霏霏
QQ交流群:243633526
博客地址:http://www.cnblogs.com/yunfeifei/
声明:本博客原创文字只代表本人工作中在某一时间内总结的观点或结论,与本人所在单位没有直接利益关系。非商业,未授权,贴子请以现状保留,转载时必须保留此段声明,且在文章页面明显位置给出原文连接。
如果大家感觉我的博文对大家有帮助,请推荐支持一把,给我写作的动力。
.Net Core 2.0 EntityFrameworkCore CodeFirst入门教程的更多相关文章
- 在.Net Core中使用MongoDB的入门教程(一)
首先,我们在MongoDB的官方文档中看到,MongoDb的2.4以上的For .Net的驱动是支持.Net Core 2.0的. 所以,在我们安装好了MangoDB后,就可以开始MangoDB的.N ...
- 在.Net Core中使用MongoDB的入门教程(二)
在上一篇文章中,讲到了MongoDB在导入驱动.MongoDB的连接,数据的插入等. 在.Net Core中使用MongoDB的入门教程(一) 本篇文章将接着上篇文章进行介绍MongoDB在.Net ...
- .Net Core 3.0 IdentityServer4 快速入门
.Net Core 3.0 IdentityServer4 快速入门 一.简介 IdentityServer4是用于ASP.NET Core的OpenID Connect和OAuth 2.0框架. 将 ...
- .Net Core 3.0 IdentityServer4 快速入门02
.Net Core 3.0 IdentityServer4 快速入门 —— resource owner password credentials(密码模式) 一.前言 OAuth2.0默认有四种授权 ...
- 1.0 Android基础入门教程
1.0 Android基础入门教程 分类 Android 基础入门教程 本教程于2015年7月开始撰写,耗时半年,总共148节,涵盖了Android基础入门的大部分知识,由于当时能力局限,虽已竭尽全力 ...
- .NET Core 3.0中用 Code-First 方式创建 gRPC 服务与客户端
.NET Core love gRPC 千呼万唤的 .NET Core 3.0 终于在 9 月份正式发布,在它的众多新特性中,除了性能得到了大大提高,比较受关注的应该是 ASP.NET Core 3. ...
- Asp.net Core 2.0+EntityFrameWorkCore 2.0添加数据迁移
Asp.net Core 由于依赖注入的广泛使用,配置数据迁移,与Asp.net大不相同,本篇介绍一下Asp.net Core添加数据迁移的过程 添加Nuget包 Install-Package Mi ...
- lucene3.6.0 经典案例 入门教程
第一步:下载并导入lucene的核心包(注意版本问题): 例如Lucene3.6版本:将lucene-core-3.6.0.jar拷贝到项目的libs 文件夹里. 例如Lucene4.6版本:将l ...
- Asp.Net Core中使用MongoDB的入门教程,控制台程序使用 MongoDB
内容来源 https://blog.csdn.net/only_yu_yy/article/details/78882446 首先,创建一个.Net Core的控制台应用程序.然后使用NuGet导入 ...
随机推荐
- 使用 Prometheus + Grafana 对 Kubernetes 进行性能监控的实践
1 什么是 Kubernetes? Kubernetes 是 Google 开源的容器集群管理系统,其管理操作包括部署,调度和节点集群间扩展等. 如下图所示为目前 Kubernetes 的架构图,由 ...
- 【ASP.NET MVC 学习笔记】- 17 Model验证
本文参考:http://www.cnblogs.com/willick/p/3434483.html 1.Model验证用于在实际项目中对用户提交的表单的信息进行验证,MVC对其提供了很好的支持. 2 ...
- java web 入门级 开发 常用页面调试方法
这里介绍一下Java web 入门级开发中常用的代码调式方法; ( 仅供入门级童靴 参考) ; 工具: chrome 浏览器 (版本越高越好); Java web 入门级开发 主要就是两个方面: ...
- LeetCode 543. Diameter of Binary Tree (二叉树的直径)
Given a binary tree, you need to compute the length of the diameter of the tree. The diameter of a b ...
- python函数说明内容格式错误
def levlTwo(levloneList,levlOneNum): """ 入参levloneList 一级城市列表 入参levlOneNum 用户选择的城市序号 ...
- Ionic3 编程-应用启动进入引导页
新建引导页面 ionic g page welcome 导入组件 修改模版文件:welcome.html 修改样式文件:welcome.scss 安装相关插件: 数据库使用SQLite:ionic c ...
- win10 安装Node.js 报错:2503
解决方法: 使用管理员打开CMD
- Leetcode题解(十二)
33.Search in Rotated Sorted Array 题目 这道题目如果没有其他要求,直接遍历一遍就可以知道答案,但是,题目给出了是排序了数组,但是数组有可能经过了旋转得到,其解题思路仍 ...
- ASP.NET Core的身份认证框架IdentityServer4(6)- 开始
安装和概述 启动一个新的IdentityServer项目有两种基本方法: 从头开始 从Visual Studio中的ASP.NET身份模板开始 如果从头开始,我们提供了一些文档.项目帮助和内存存储支持 ...
- VMware驱动程序"vmci.sys"的版本不正确 怎么解决
解决办法: 1.创建好虚拟机之后,别打开电源,然后到建好的虚拟机文件夹里: 2.找到后缀vmx的文件,记事本打开: 3.找到vmci0.present='TRUE',把true改为false: 4.保 ...