.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/

声明:本博客原创文字只代表本人工作中在某一时间内总结的观点或结论,与本人所在单位没有直接利益关系。非商业,未授权,贴子请以现状保留,转载时必须保留此段声明,且在文章页面明显位置给出原文连接。

如果大家感觉我的博文对大家有帮助,请推荐支持一把,给我写作的动力。

时间: 2024-07-29 07:43:00

.Net Core 2.0 EntityFrameworkCore CodeFirst入门教程的相关文章

.Net Core 3.0 IdentityServer4 快速入门

原文:.Net Core 3.0 IdentityServer4 快速入门 .Net Core 3.0 IdentityServer4 快速入门 一.简介 IdentityServer4是用于ASP.NET Core的OpenID Connect和OAuth 2.0框架. 将IdentityServer4部署到您的应用中具备如下特点: 1).认证服务 2).单点登陆 3).API访问控制 4).联合网关 5).专注于定制 6).成熟的开源系统 7).免费和商业支持 二.整体部署 目前大多数的应用

.Net Core 3.0 IdentityServer4 快速入门02

.Net Core 3.0 IdentityServer4 快速入门 —— resource owner password credentials(密码模式) 一.前言 OAuth2.0默认有四种授权模式(GrantType): 1)授权码模式 2)简化模式 3)密码模式(resource owner password credentials) 4)客户端模式(client_credentials) 上一小节接受了 客户端模式 ,本小节将介绍 密码模式,OAuth2.0资源所有者密码授权功能允许

Vue2.0 探索之路——vuex入门教程和思考

Vuex是什么 首先对于 vuex 是什么,我先引用下官方的解释. Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化. 就我的直观理解 vuex 类似于维护了一个全局的 Map对象.你可以往里存放 key-value .然后所有的state数据操作都方法化,保证操作的可追踪和数据的干净. Vuex应用场景 其实对于vuex的应用场景一开始我有点误区,因为我把它当做了一个从始至终类似于 loc

ps菜鸟入门教程:[6]字体制作教程

ps菜鸟入门教程:[6]字体制作教程 | 浏览:230 | 更新:2014-01-03 13:00 | 标签: 字体 1 2 3 4 5 6 7 分步阅读 ps字体制作不是很难,准确地说,我今天分享的这个经验不难学,菜鸟也能很快掌握,所以我也把它划到了ps菜鸟入门教程里面,呵呵.自个儿看教程学习吧,很容易! 工具/原料 photoshop cs 6.0 ps菜鸟入门教程之字体制作 新建背景图层,输入名称,尺寸等,这个是按照个人喜好设定的.   设定好之后,复制一层.   将前景色改成你喜欢的颜色

【OpenCV入门教程之一】 安装OpenCV:OpenCV 3.0、OpenCV 2.4.8、OpenCV 2.4.9 +VS 开发环境配置

本系列文章由@浅墨_毛星云 出品.   文章链接:http://blog.csdn.net/poem_qianmo/article/details/19809337 1.下载和安装OpenCV SDK VS2010不用说,肯定都安装了吧.来说说当前最新的OpenCV版本2.4.8(2014年2月24日),2.4.9 (2014年4月)的下载和安装.与其说是安装,不如叫解压更加合适,因为我们下载的exe安装文件就是一个自解压程序而已. 在官网:http://opencv.org/上找到OpenCV

.NET Core 2.0 官方下载地址及中文教程

开发.net core 应用需要安装.NET Core 2.0 SDK http://www.microsoft.com/net/download/core#/sdk 电脑上运行 .net core 应用 需要安装 .NET Core 2.0  runtime http://www.microsoft.com/net/download/core#/runtime .NET Core 入门 https://docs.microsoft.com/zh-cn/dotnet/core/ NET Core

ASP.NET Core 入门教程 7、ASP.NET Core MVC 分部视图入门

原文:ASP.NET Core 入门教程 7.ASP.NET Core MVC 分部视图入门 一.前言 1.本教程主要内容 ASP.NET Core MVC (Razor)分部视图简介 ASP.NET Core MVC (Razor)分部视图基础教程 ASP.NET Core MVC (Razor)强类型分部视图教程 2.本教程环境信息 软件/环境 说明 操作系统 Windows 10 SDK 2.1.401 ASP.NET Core 2.1.3 IDE Visual Studio Code 1

ASP.NET Core 入门教程 5、ASP.NET Core MVC 视图传值入门

原文:ASP.NET Core 入门教程 5.ASP.NET Core MVC 视图传值入门 一.前言 1.本教程主要内容 ASP.NET Core MVC 视图引擎(Razor)简介 ASP.NET Core MVC 视图(Razor)ViewData使用示例 ASP.NET Core MVC 视图(Razor)ViewBag使用示例 ASP.NET Core NVC 视图(Razor)强类型传值(ViewModel)页示例 2.本教程环境信息 软件/环境 说明 操作系统 Windows 10

ASP.NET Core 入门教程 2、使用ASP.NET Core MVC框架构建Web应用

原文:ASP.NET Core 入门教程 2.使用ASP.NET Core MVC框架构建Web应用 一.前言 1.本文主要内容 使用dotnet cli创建基于解决方案(sln+csproj)的项目 使用Visual Studio Code开发基于解决方案(sln+csproj)的项目 Visual Studio Code Solution插件( vscode-solution-explorer)基础使用介绍 基于 .NET Core web项目模板构建 ASP.NET Core MVC We