.Net Core 2.0 EntityFrameworkCore CodeFirst入门教程

最近可贵有时间闲下来,研究了一下.net core 2.0,总的来讲,目前除了一些第三方的库不支持外,基本上能够知足咱们的项目需求了!web

咱们就以一个网站开发为例,搭建一个简单的三层架构,先熟悉一下.net core 2.0的开发流程!数据库

 

 一 、搭建项目框架

 

首先,咱们新建项目,如图:json

 

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

 

 二 、初始化数据库

项目中, NetCoreDemo.Repository至关于三层中的DAL层,主要是与数据库交互!为了实现web项目和数据库解耦,方便未来更好数据库,咱们在NetCoreDemo.Repository中安装EntiryFrameWorkCore,这里咱们以SQL Server为例,安装下面两个安装包,在程序包管理控制台执行如下命名或者用Nuget包管理器安装都可:app

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,里面内容以下:ui

{
  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Warning"
    }
  }
}

咱们就把数据库链接字符串放到这里吧,改完后,其内容以下:spa

{
  "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/

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

若是你们感受个人博文对你们有帮助,请推荐支持一把,给我写做的动力。

相关文章
相关标签/搜索