.net core +codefirst(.net core 基础入门,适合这方面的小白阅读,本文使用mysql或mssql)

设置为model所在的那一层 mysql

 

前言 

 .net core mvc和 .net mvc开发很类似,好比 视图-模型-控制器结构。因此.net mvc开发员很容易入手.net core mvc 。可是两个又有细微的区别,好比配置.net mvc中Web.config和Global.asax消失,而在.net core mvc中则是Startup.cs、Program.cs、appsettings.json等等。因此想要深刻了解.net core就必须更加深刻的学习。而刚刚开始的学习则是经过创建一个链接数据库的demo开始。因为配置文件的不一样,致使不少新手在链接数据库,或者使用codeFisrt开发殊不知道怎么配置。因此我在这里较为详细的写一个demo提供给须要此方面的博友。(若有不正确地方欢迎各位指正)sql

开发工具vs2017数据库

数据库  mssql2014json

.net core环境 .net core2.1mvc

1】先创建model层

  1.1先创建一个空白方案app

而后创建一个内库,用来存放model:注意选择内库(.net core)ide

  1.2在model层添加内容工具

如今nuget中分别引用:Microsoft.EntityFrameworkCore.SqlServer和Microsoft.EntityFrameworkCore.Tools,注意二者版本号最好相同,以避免出错学习

  而后加入model和数据库的上下文类DataBase(这个名字本身随意取),我在这里先只创建一个user表(注意在DataBase中须要开发工具

using Microsoft.EntityFrameworkCore;)

public class DataBase : DbContext
    {
        //构造方法
        public DataBase(DbContextOptions<DataBase> options)
            : base(options)
        { }

        #region 数据区域
        public DbSet<User> User { get; set; }
        #endregion

    }
View Code

 

至此,model层配置完毕

2】开始创建.net core项目

先创建一个.net core项目

项目创建完毕以后先引用model层

而后进入Startup.cs配置数据库链接,这里首先引用using Microsoft.EntityFrameworkCore;和model层 using Modelx;而后配置链接

注意services.AddDbContext<DataBase>中的DataBase是model层中的  数据库的上下文类,别弄错了

以上所有完成,而后添加一个例子看看效果,在任意一个控制器中写入如下代码而后运行(.net core 的一个好处就是内置依赖注入)

这时,会发现程序报错

原来,.net core 和.net mvc相比,在使用codefirst时候,除了配置文件以外,.net core 还须要在控制台中执行如下两行代码

【注意每次修改数据库都须要执行这两段命令,每次执行 Add-Migration 后面名字必须不一样】

 先输入:Add-Migration  MyFirstMigration(名字。这里随意取未MyFirstMigration)

 在输入:Update-Database  
View Code

首先咱们打开控制台:

先输入:Add-Migration  MyFirstMigration而后回车等待运行完毕

而后输入:Update-Database  回车,等到所有运行完毕以后,再运行项目看看,就发现项目正常运行,以及数据库正常生成

 

注意若是输入  Add-Migration  MyFirstMigration出现Build failed则说明Microsoft.EntityFrameworkCore.Tools版本太高,和当前其余插件的版本不匹配,建议使用2.14

 

 

3】ps:关于链接数据库的第二种方法。

关于上文链接数据库,或许有人会问:和本身链接的不太同样,.net core 链接字符串不是应该写在appsettings.json里面?下面,我就将链接数据库的第二种方法写在下面,毕竟多多益善

 

 若是想尝试这种方法的话,别忘了在控制台输入

先输入:Add-Migration MyFirstMigrations(名字,为了和上面区分,这里加了s)

在输入:Update-Database

 

 4】ps:关于链接mysql数据库。

首先在model层的nuget中引入 Microsoft.EntityFrameworkCore.Tools和 Pomelo.EntityFrameworkCore.MySql(圆圈是链接mssql必备、方块是链接mysql必备)

 

 

而后返回ui层的appsettings.json中修改链接字符串

 

而后进入Startup.cs注入上下文

 

 最后,在系统运行以前别忘记在nuget控制台中运行那两行命令

为迁移搭建基架运行:Add-Migration MyFirstMy

将新迁移应用到数据库运行:Update-Database

另外,须要注意的是,在默认项目这里选择你mode层的名字,否者运行错误

 

当以上所有完成以后,在运行程序,而后去看mysql数据库

 

建议各位手打一次,加深印象。若是想偷懒的,付出代价(2积分)吧

https://download.csdn.net/download/qq_36215047/10824784 源码地址

--------------------------------------分界线 2018-12-10  ------------------------------------------------------------------

错误记录 1

 Unable to create an object of type 'DataBaseContext'. Add an implementation of 'IDesignTimeDbContextFactory<DataBaseContext>' to the project, or see  https://go.microsoft.com/fwlink/?linkid=851728 for additional patterns supported at design time.

若是输入Add-Migration  出现这个错误,请把ui层设置为启动项,而后在输入 Add-Migration MyFirstMy,注意

 

 

若是以为本文对你有用的话,帮忙在最下方点个推荐吧∑(っ°Д°;)っ

相关文章
相关标签/搜索