本文将在asp.net core api 项目中使用efcore corefirst模式 简单配置链接sqlserver数据库,以及简单的数据库迁移操作

一 新建项目

1. 首先我们先用vs2017 创建一个空的 asp.net core api 项目

2.  在生成的解决方案下在建立一个访问数据库使用的类库CoreApi.Model,注意要选择.netcore下的类库,如图所示

二 添加相关引用

1. 打开nuget包的程序管理命令控制台,执行添加引用命令 ,注意执行时控制台的默认项目要定位为 CoreApi.Model

引用 EntityFrameworkCore

Install-Package Microsoft.EntityFrameworkCore

引用 EntityFrameworkCore.SqlServer

Install-Package Microsoft.EntityFrameworkCore.SqlServer

引用 EntityFrameworkCore.SqlServer.Tools

Install-Package Microsoft.EntityFrameworkCore.Tools

三 相关配置

1. 在appsettings.json 文件中添加sqlserver的数据库链接配置,配置如下

{
"ConnectionStrings": {
"SqlServerConnection": "Server=.;Database=dbCore;User ID=sa;Password=abc123456;"
},
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Warning"
}
}
}

2.修改项目Startup.cs 文件 的ConfigureServices 方法,注意此处必须引用 using Microsoft.EntityFrameworkCore

以及using CoreApi.Model;

 // This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
var sqlConnection = Configuration.GetConnectionString("SqlServerConnection");
services.AddDbContext<ApiDBContent>(option => option.UseSqlServer(sqlConnection));
services.AddMvc();
}

四 生成数据库

  1. 首先在CoreApi.Model下建立在UserInfo 用户模型

 public  class UserInfo
{
public int Id { get; set; }
public string UserName { get; set; }
public string Password { get; set; }
}

2.  配置数据上下文

public class ApiDBContent : DbContext
{
public ApiDBContent(DbContextOptions<ApiDBContent> options)
: base(options)
{
}
public DbSet<UserInfo> Users { get; set; }
}

3.  打开程序包管理控制台,执行 Add-Migration Migrations 命令,注意此时默认项目也必须定位CoreApi.Model,

如果顺利的话项目下应该会生成一个Migrations的文件夹并包含一些初始化生成数据库需要用的文件

4.执行 update-database 命令生成数据库,

五 简单的数据库迁移

  1. 我们新增一个Articles 模型  在userinfo中增加两个字段,使用命令将其更新至数据库,还是需要注意默认项目也必须定位CoreApi.Model,因为我们所有的数据库操作都是针对model层的

 public  class UserInfo
{
public int Id { get; set; }
public string UserName { get; set; }
public string Password { get; set; }
public string Phone { get; set; }
public virtual List<Articles> Articles { get; set; }
} public class Articles
{
public int Id { get; set; }
public string Title { get; set; }
public string summary { get; set; }
public virtual UserInfo User{get;set;} }
  1. 我们执行 命令 Add-Migration migrationName 和 update-datebase   成功后刷新数据库可以看到表和字段都相应的加上了 ,当然还有外键

六 最后我们在数据库中初始化一些数据 然后使用efcore 请求数据

1. 在数据库初始用户数据

2.  构造函数方式初始化数据上下文, 简单修改ValuesController 下的 Get 方法

private readonly ApiDBContent _dbContext;

        public ValuesController(ApiDBContent dbContext)
{
_dbContext = dbContext;
}
// GET api/values
[HttpGet]
public JsonResult Get()
{
return Json(_dbContext.Users.Take(2).ToList()) ;
//return new string[] { "value1", "value2" };
}

3.  启动项目 请求get api

博主网址:http://www.siyouku.cn

本文永久更细地址:http://siyouku.cn/article/6818.html

efcore 配置链接sqlserver的更多相关文章

  1. efcore 配置链接sqlserver 记录

    本文将在asp.net core api 项目中使用efcore corefirst模式 简单配置链接sqlserver数据库,以及简单的数据库迁移操作 一 新建项目 1. 首先我们先用vs2017 ...

  2. asp.net EFcore配置链接sqlserver

    1. 首先我们先用vs2017 创建一个空的 asp.net core api 项目 2.  在生成的解决方案下在建立一个访问数据库使用的类库CoreApi.Model,注意要选择.netcore下的 ...

  3. php7.0.12 laravel 链接sqlserver数据库

    https://www.microsoft.com/en-us/download/details.aspx?id=20098 下载最后一个,然后这个工具可以将dll扩展下载下来,选择一个空白的文件夹就 ...

  4. laravel----------php7.0.12 laravel 链接sqlserver数据库

    https://www.microsoft.com/en-us/download/details.aspx?id=20098 下载最后一个,然后这个工具可以将dll扩展下载下来,选择一个空白的文件夹就 ...

  5. 关于在Java中链接SQLServer数据库中失败的原因分析

    首先声明:笔者是Java的初学者,并且一值是走在自学的道路上,长久以来只有“度娘”相伴.(加入了各种Java学习群,基本没有热心帮人解决问题的.可以理解-_-!!!)大神级的人物就不必看拙文了,没有什 ...

  6. jtds链接SqlServer数据库(整合)

    先前使用的时候没做汇总,现在结合遇到的问题总结下. 开始使用jdbc驱动配置调用SqlServer不合适,根据网上的资料修改成了jtds配置方式. 当时使用的maven配置,配置如下: <spa ...

  7. linux 环境 php 链接 sqlserver 2008

    说明 由于业务需要 在 linux 系统下的 PHP 环境中 要链接 sqlserver2008 数据库 . 添加PHP 链接数据库扩展 php-mssql dockerfile FROM hub.0 ...

  8. PHP链接sqlserver出现中文乱码

    PHP通过dblib扩展链接sqlserver,使用的是freetds,出现中文乱码. 在freetds的配置文件中(/usr/local/freetds/etc/freetds.conf),[glo ...

  9. 《Sqlserver》Javaweb项目链接sqlserver 2008R2时出现的一系列的错误

    好久没有弄java,玩eclipse了,最近因为小小的原因,参加一个比赛,不得不把javaweb的东西又捡起来,所以不熟悉,再加上之前链接数据库都是用Oracle的,现在公司的电脑上又只是安装了sql ...

随机推荐

  1. [Winter Vacation] 守护,守望

    最近总是堕落......想好了,不如在百无聊赖之时写一些心底的话,让它们最终不归于尘土吧. 有了想要守护一个人的信念与想法,然而有没有资格却还没有人能够说清楚,下断言.这可真是可悲了,总不能笃定着对方 ...

  2. [Maven实战-许晓斌]-[第二章]-2.6 NetBeans上面安装Maven插件

    NetBeans上面安装Maven插件

  3. 为什么 SQLite 用 C 编写?

    简评:SQLite 官方出品. C是最好的选择 从 2000 年 5 月 29 日开始,SQLite 就选择了 C 语言.直到今天,C 也是实现 SQLite 这样软件库的最佳语言. C语言是实现 S ...

  4. 一步一步带你安装史上最难安装的 vim 插件 —— YouCompleteMe

    YouCompleteMe is a fast, as-you-type, fuzzy-search code completion engine for Vim.参考: https://github ...

  5. docker安装mysql57

    提升应用交付效率 1. 支持服务发现,避免服务重启迁移 IP 变更带来影响:2. 支持微服务化,降低代码维护及重构复杂度,适应快速变化的业务需求. 快速响应业务变化 1. 灵活水平扩展,应对业务量的骤 ...

  6. 10分钟教你用Python玩转微信之抓取好友个性签名制作词云

    01 前言+展示 各位小伙伴我又来啦.今天带大家玩点好玩的东西,用Python抓取我们的微信好友个性签名,然后制作词云.怎样,有趣吧~好了,下面开始干活.我知道你们还是想先看看效果的. 后台登录: 词 ...

  7. javax.jms.JMSException: Could not connect to broker URL: tcp://localhost:61616. Reason: java.net.ConnectException: Connection timed out: connect

    本地测试向服务器中ActiveMQ添加队列数据,报错连接超时 解决: 查看服务器端口号是否存在,(最好是0.0.0.0格式的,虽然暂时还不知道为啥得这个格式) 通过telnet测试该端口不通(6161 ...

  8. [原创]VMware Workstation 14.1.3 Pro安装CentOS_7.6.1810

    前言 Linux作为最主流的服务器操作系统,在市场上的使用占比保持着领先对位.其中CentOS作为基于Red Hat Linux 提供的可自由使用源代码的企业级Linux发行版本,在企业的服务器中,也 ...

  9. windows使用putty向远程服务器传送文件

    一.问题产生 对于远程服务器,我习惯把文件写好后直接上传到服务器,也有很多方法可以做到,我现在比较习惯使用putty自带的pscp直接去传. 二.解决办法 1.首先在本地下载的putty文件下看是否有 ...

  10. 安装Windows 64 位 mysql 最新版本解压包中没有data目录和my-default.ini及服务无法启动的快速解决办法

    mysql官网下载地址:https://dev.mysql.com/downloads/mysql/ 首先安装包解压后,没有网上教程里面提到的data文件夹和my-default.ini 配置环境变量 ...