设置为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 }

至此,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  

首先我们打开控制台:

先输入: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,注意

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

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

  1. .net core +codefirst(.net core 基础入门,适合这方面的小白阅读) 【我们一起写框架】领域驱动设计的CodeFirst框架(一)—序篇

    .net core +codefirst(.net core 基础入门,适合这方面的小白阅读)   前言 .net core mvc和 .net mvc开发很相似,比如 视图-模型-控制器结构.所以. ...

  2. ASP.NET Core消息队列RabbitMQ基础入门实战演练

    一.课程介绍 人生苦短,我用.NET Core!消息队列RabbitMQ大家相比都不陌生,本次分享课程阿笨将给大家分享一下在一般项目中99%都会用到的消息队列MQ的一个实战业务运用场景.本次分享课程不 ...

  3. .NET Core 学习资料精选:入门

    开源跨平台的.NET Core,还没上车的赶紧的,来不及解释了-- 本系列文章,主要分享一些.NET Core比较优秀的社区资料和微软官方资料.我进行了知识点归类,让大家可以更清晰的学习.NET Co ...

  4. .Net Core 3.0 IdentityServer4 快速入门

    .Net Core 3.0 IdentityServer4 快速入门 一.简介 IdentityServer4是用于ASP.NET Core的OpenID Connect和OAuth 2.0框架. 将 ...

  5. 使用EF Core+CodeFirst建立ASP.NET Core MVC项目

    本篇随笔介绍如何使用.NET Core+EF Core创建Web应用程序 首先借用官网的话简单介绍一下ASP.NET Core ASP.NET Core 是一个跨平台的高性能开源框架,用于生成基于云且 ...

  6. .Net Core in Docker极简入门(下篇)

    Tips:本篇已加入系列文章阅读目录,可点击查看更多相关文章. 目录 前言 开始 Docker-Compose 代码修改 yml file up & down 镜像仓库 最后 前言 上一篇[. ...

  7. 如何在ASP.NET Core中实现一个基础的身份认证

    注:本文提到的代码示例下载地址> How to achieve a basic authorization in ASP.NET Core 如何在ASP.NET Core中实现一个基础的身份认证 ...

  8. [转]如何在ASP.NET Core中实现一个基础的身份认证

    本文转自:http://www.cnblogs.com/onecodeonescript/p/6015512.html 注:本文提到的代码示例下载地址> How to achieve a bas ...

  9. 在.Net Core中使用MongoDB的入门教程(二)

    在上一篇文章中,讲到了MongoDB在导入驱动.MongoDB的连接,数据的插入等. 在.Net Core中使用MongoDB的入门教程(一) 本篇文章将接着上篇文章进行介绍MongoDB在.Net ...

随机推荐

  1. 【爆料】-《悉尼科技大学毕业证书》UTS一模一样原件

    ☞悉尼科技大学毕业证书[微/Q:2544033233◆WeChat:CC6669834]UC毕业证书/联系人Alice[查看点击百度快照查看][留信网学历认证&博士&硕士&海归 ...

  2. 菜鸟如何反转到资深Web安全工程师

    90后理工男,计算机专业,毕业于985院校,从事Web安全工作,两年多的时间里先后跳槽3家公司,跳槽理由主要有以下几点:加班多.薪资低.工作内容枯燥,不想安于现状,寄希望于通过跳槽找到一个“钱多.活少 ...

  3. c#Socket服务器与客户端的开发(2)

    上一篇文章我们使用原生的socket分别实现了服务器和客户端, 本篇文章使用SuperSocket来开发实现服务器, 之前也介绍了SuperSocket是一个轻量级, 跨平台而且可扩展的 .Net/M ...

  4. python接口自动化(十七)--Json 数据处理---一次爬坑记(详解)

    简介 有些 post 的请求参数是 json 格式的,这个前面发送post 请求里面提到过,需要导入 json模块处理.现在企业公司一般常见的接口因为json数据容易处理,所以绝大多数返回数据也是 j ...

  5. ES 18 - (底层原理) Elasticsearch写入索引数据的过程 以及优化写入过程

    目录 1 Lucene操作document的流程 1.1 添加document的流程 1.2 删除document的流程 2 优化写入流程 - 实现近实时搜索 2.1 流程的改进思路 2.2 设置re ...

  6. 设计模式-发布订阅模式(javaScript)

    1. 前言 2. 什么是发布订阅模式 3. 发布订阅优缺点 4. 举例 4. 总结 1. 前言 发布订阅者模式是为了发布者和订阅者之间避免产生依赖关系,发布订阅者之间的订阅关系由一个中介列表来维护.发 ...

  7. 如何通过免费开源的ERP Odoo打造企业全员营销整体解决方案

    应用场景的背景故事 在一些二级城市,往往线索的来源是通过企业当地口碑积累.熟人转介绍等线下的方式为主,利用互联网的模式往往很难奏效,企业面临的第一个问题就是如何把握线索真实的来源介绍的问题.在这个问题 ...

  8. JVM利器:Serviceability Agent介绍

    本文首发于公众号:javaadu 简单介绍 构建高性能的Java应用过程中,必然会遇到各种各样的问题,像CPU飙高.内存泄漏.应用奔溃,以及其他疑难杂症,这时可以使用Serviceability Ag ...

  9. (三)图数据库neo4j的安装配置

    (一)neo4j安装 neo4j有社区版本和企业版,社区版本是免费的,企业版本是收费的.在linux上安装如下步骤: 1.将下载的neo4j-enterprise-3.4.0-unix.tar.gz包 ...

  10. LeetCode算法题-Prime Number of Set Bits in Binary Representation(Java实现)

    这是悦乐书的第311次更新,第332篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第180题(顺位题号是762).给定两个正整数L和R,在[L,R]范围内,计算每个整数的 ...