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


    设置为model所在的那一层 

    前言 

     .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提供给需要此方面的博友。(如有不正确地方欢迎各位指正)

    开发工具vs2017

    数据库  mssql2014

    .net core环境 .net core2.1

    1】先建立model层

      1.1先建立一个空白方案

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

      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,注意

    如果觉得本文对你有用的话,帮忙在最下方点个推荐吧∑(っ°Д°;)っ

  • 相关阅读:
    Android消息推送完美方案[转]
    这一路走来
    【深入比较ThreadLocal模式与synchronized关键字】
    前端闭包 解决异步执行问题
    微信小程序在wxml双大括号中执行复杂运算
    腾讯云对象存储使用
    CSS中的flex布局
    docker基础学习笔记
    redis学习笔记
    微信小程序页面栈管理
  • 原文地址:https://www.cnblogs.com/1439107348s/p/10057694.html
Copyright © 2020-2023  润新知