efcore 配置链接sqlserver
本文将在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();
}
四 生成数据库
首先在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 命令生成数据库,

五 简单的数据库迁移
我们新增一个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;} }
我们执行 命令 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://siyouku.cn/article/6818.html
efcore 配置链接sqlserver的更多相关文章
- efcore 配置链接sqlserver 记录
本文将在asp.net core api 项目中使用efcore corefirst模式 简单配置链接sqlserver数据库,以及简单的数据库迁移操作 一 新建项目 1. 首先我们先用vs2017 ...
- asp.net EFcore配置链接sqlserver
1. 首先我们先用vs2017 创建一个空的 asp.net core api 项目 2. 在生成的解决方案下在建立一个访问数据库使用的类库CoreApi.Model,注意要选择.netcore下的 ...
- php7.0.12 laravel 链接sqlserver数据库
https://www.microsoft.com/en-us/download/details.aspx?id=20098 下载最后一个,然后这个工具可以将dll扩展下载下来,选择一个空白的文件夹就 ...
- laravel----------php7.0.12 laravel 链接sqlserver数据库
https://www.microsoft.com/en-us/download/details.aspx?id=20098 下载最后一个,然后这个工具可以将dll扩展下载下来,选择一个空白的文件夹就 ...
- 关于在Java中链接SQLServer数据库中失败的原因分析
首先声明:笔者是Java的初学者,并且一值是走在自学的道路上,长久以来只有“度娘”相伴.(加入了各种Java学习群,基本没有热心帮人解决问题的.可以理解-_-!!!)大神级的人物就不必看拙文了,没有什 ...
- jtds链接SqlServer数据库(整合)
先前使用的时候没做汇总,现在结合遇到的问题总结下. 开始使用jdbc驱动配置调用SqlServer不合适,根据网上的资料修改成了jtds配置方式. 当时使用的maven配置,配置如下: <spa ...
- linux 环境 php 链接 sqlserver 2008
说明 由于业务需要 在 linux 系统下的 PHP 环境中 要链接 sqlserver2008 数据库 . 添加PHP 链接数据库扩展 php-mssql dockerfile FROM hub.0 ...
- PHP链接sqlserver出现中文乱码
PHP通过dblib扩展链接sqlserver,使用的是freetds,出现中文乱码. 在freetds的配置文件中(/usr/local/freetds/etc/freetds.conf),[glo ...
- 《Sqlserver》Javaweb项目链接sqlserver 2008R2时出现的一系列的错误
好久没有弄java,玩eclipse了,最近因为小小的原因,参加一个比赛,不得不把javaweb的东西又捡起来,所以不熟悉,再加上之前链接数据库都是用Oracle的,现在公司的电脑上又只是安装了sql ...
随机推荐
- [Winter Vacation] 守护,守望
最近总是堕落......想好了,不如在百无聊赖之时写一些心底的话,让它们最终不归于尘土吧. 有了想要守护一个人的信念与想法,然而有没有资格却还没有人能够说清楚,下断言.这可真是可悲了,总不能笃定着对方 ...
- [Maven实战-许晓斌]-[第二章]-2.6 NetBeans上面安装Maven插件
NetBeans上面安装Maven插件
- 为什么 SQLite 用 C 编写?
简评:SQLite 官方出品. C是最好的选择 从 2000 年 5 月 29 日开始,SQLite 就选择了 C 语言.直到今天,C 也是实现 SQLite 这样软件库的最佳语言. C语言是实现 S ...
- 一步一步带你安装史上最难安装的 vim 插件 —— YouCompleteMe
YouCompleteMe is a fast, as-you-type, fuzzy-search code completion engine for Vim.参考: https://github ...
- docker安装mysql57
提升应用交付效率 1. 支持服务发现,避免服务重启迁移 IP 变更带来影响:2. 支持微服务化,降低代码维护及重构复杂度,适应快速变化的业务需求. 快速响应业务变化 1. 灵活水平扩展,应对业务量的骤 ...
- 10分钟教你用Python玩转微信之抓取好友个性签名制作词云
01 前言+展示 各位小伙伴我又来啦.今天带大家玩点好玩的东西,用Python抓取我们的微信好友个性签名,然后制作词云.怎样,有趣吧~好了,下面开始干活.我知道你们还是想先看看效果的. 后台登录: 词 ...
- 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 ...
- [原创]VMware Workstation 14.1.3 Pro安装CentOS_7.6.1810
前言 Linux作为最主流的服务器操作系统,在市场上的使用占比保持着领先对位.其中CentOS作为基于Red Hat Linux 提供的可自由使用源代码的企业级Linux发行版本,在企业的服务器中,也 ...
- windows使用putty向远程服务器传送文件
一.问题产生 对于远程服务器,我习惯把文件写好后直接上传到服务器,也有很多方法可以做到,我现在比较习惯使用putty自带的pscp直接去传. 二.解决办法 1.首先在本地下载的putty文件下看是否有 ...
- 安装Windows 64 位 mysql 最新版本解压包中没有data目录和my-default.ini及服务无法启动的快速解决办法
mysql官网下载地址:https://dev.mysql.com/downloads/mysql/ 首先安装包解压后,没有网上教程里面提到的data文件夹和my-default.ini 配置环境变量 ...
