1.添加并加入

在project.json中添加

"tools": {
"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final"
}, "dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.0"
},
"Pomelo.EntityFrameworkCore.MySql": "1.0.1",
"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final"
},

在 tools中加入

 "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final"

在dependencies中加入
  "Pomelo.EntityFrameworkCore.MySql": "1.0.1",
"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final"
在Startup.cs中加入
  public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddApplicationInsightsTelemetry(Configuration); services.AddDbContext<这里填写你的DbContext>(options => options.UseMySql(Configuration.GetConnectionString("DefaultConnectionString"))); services.AddMvc();
}

                                                                                                   下面这个地方可以直接填写你的数据库连接字符串。//比如 "Server=localhost;database=MySqlDemo;uid=root;pwd=123456;"

services.AddDbContext<这里填写你的DbContext>(options => options.UseMySql(Configuration.GetConnectionString("DefaultConnectionString")));
这里的Configuration读取的是appsettings.json 。
所以你要在appsetting.json 添加一个
"ConnectionStrings": {
"DefaultConnectionString": "Server=localhost;database=MySqlDemo;uid=Quan;pwd=123456;"
},

然后他就可以读到这个字符串了。

当然你的DbContext一定要有构造方法。

 public class MySqlDemoContext : DbContext
{
public MySqlDemoContext(DbContextOptions<MySqlDemoContext> options): base(options)
{
}
}
这样你的mysql数据库就能练得上了,可以当然但是这样连接上去并存入数据有可能会报错,因为efcore,并不会主动地创建数据库
 public class MySqlDemoInitializer
{
public static void Seed(IApplicationBuilder app)
{
// Get an instance of the DbContext from the DI container
using (var context = app.ApplicationServices.GetRequiredService<MySqlDemoContext>())
{
//如果数据库不存在就会去创建
context.Database.EnsureCreated();
//这里半段有无数据在在表里,如果有不初始化数据,如果没有就初始化
if (context.Set<Account>().Any() == false)
{
SetBasicData(context);
SetTestAdmin(context);
#if DEBUG
SetTestNews(context);
SetTestCase(context);
SetTestPartner(context);
SetTestCompany(context);
SetTestPosition(context);
SetTestProblem(context);
SetTestRefund(context);
#endif
}
}
}
这里就是一个初始化的方法,在startup.cs中运行该方法  这个方式初始化有一个不灵活的地方,当程序运行之后只会执行一次。并不会像ef6那样,运行之后也会判断数据库,不存在也会去创建。
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{ //将该方法放于最后执行
MySqlDemoInitializer.Seed(app);
}

还有一点,取数据的时候,取出来的Model是不会带有外键
这里就要用贪心加载 这样他就能取出Model所关联的外键
db.Set<Account>()
.Include(m => m.Role)
.Include(m => m.AccountInfo)
.Include(m => m.AccountModules);

还有如何在Controller中使用

public class AccountController : Controller
{
private AccountService _accountServ;
public AccountController(MySqlDemoContext _db)
{
_accountServ = new AccountService(_db);
}
}

通过依赖注入,程序会自动将MySqlDemoContext new出来,并注入进来

4.添加对efcore的支持 ,并使用mysql数据库。的更多相关文章

  1. Ansible 从MySQL数据库添加或删除用户

    mysql_user - 从MySQL数据库添加或删除用户. 概要 要求(在执行模块的主机上) 选项 例子 笔记 状态 支持 概要 从MySQL数据库添加或删除用户. 要求(在执行模块的主机上) My ...

  2. CentOS6.5 下在Nginx中添加SSL证书以支持HTTPS协议访问

    参考文献: 1. NginxV1.8.0安装与配置 2. CentOS下在Nginx中添加SSL证书以支持HTTPS协议访问 3. nginx配置ssl证书的方法 4.nginx强制使用https访问 ...

  3. 第12章 添加对外部认证的支持 - Identity Server 4 中文文档(v1.0.0)

    注意 对于任何先决条件(例如模板),首先要查看概述. 接下来,我们将添加对外部认证的支持.这非常简单,因为您真正需要的是ASP.NET Core兼容的身份验证处理程序. ASP.NET Core本身支 ...

  4. SpringBoot添加对Log4j2的支持

    1.在添加对Log4j2的支持前,需要先把SpringBoot默认使用的Logback日志框架排除,修改pom.xml文件: <dependency> <groupId>org ...

  5. SpringBoot添加对Mybatis的支持

    1.修改maven配置文件pom.xml,添加对mybatis的支持: <dependency> <groupId>org.mybatis.spring.boot</gr ...

  6. 控制台应用程序中添加对MFC的支持

    在windows控制台应用程序中,肯能会想使用一些MFC中的类,如CStringArray等,通过下面两步简单的设置可以添加对MFC的支持: 1.右击工程名 -> References 选择 A ...

  7. 详解SpringBoot 添加对JSP的支持(附常见坑点)

    序言: SpringBoot默认不支持JSP,如果想在项目中使用,需要进行相关初始化工作.为了方便大家更好的开发,本案例可直接作为JSP开发的脚手架工程 SpringBoot+War+JSP . 常见 ...

  8. MVC.Net:WebAPI添加对jsonP的支持

    在某些情况下,我们需要在WebAPI项目中添加对jsonP的支持.比如我们同时创建了MVC.Net和WebAPI两个项目,这两个项目使用不同的端口,这时如果MVC.Net项目的前端想要直接访问WebA ...

  9. 【C#】wpf添加gif动图支持

    原文:[C#]wpf添加gif动图支持 1.nuget里下载XamlAnimatedGif包,然后安装. 2.添加XamlAnimatedGif包的命名空间:xmlns:gif="https ...

随机推荐

  1. 常用git命令纪录

    git branch xxx 新建分支xxx git branch -a 查看所有分支(包括远程) git remote add origin http://xxx.git  在本地添加一个远程仓库, ...

  2. Runtime实战之定制TabBarItem大小

    方案一:UIEdgeInsets 适用场景: 适合APP的TabBarItemImage的图片资源放在本地 图片超出tabbar的高度,需移动其位置,来进行适应 弊端: 若在本地配置好后,tabbar ...

  3. LeetCode Intersection of Two Arrays II

    原题链接在这里:https://leetcode.com/problems/intersection-of-two-arrays-ii/ 题目: Given two arrays, write a f ...

  4. trunk 的坑

    三层交换机A和三层交换机B之间原本配置有trunk口,如再用trunk连二层交换机会导致环路,网络不通.将L3 A和L3-B之间断开正常.

  5. spring事务手动回滚

    @Transactional(rollbackFor = { Exception.class }) public JSONObject preSendMsg(AuthInfo authInfo, Me ...

  6. Centos6 换源

    #主要是为了提高安装速度以及epel中自带源众多木有的软件. #Author wood_man #2016.06.01 v 2.0 1. 测试环境 VMware 10.0    CentOS rele ...

  7. java内存泄漏的定位与分析

    1.为什么会发生内存泄漏 java 如何检测内在泄漏呢?我们需要一些工具进行检测,并发现内存泄漏问题,不然很容易发生down机问题. 编写java程序最为方便的地方就是我们不需要管理内存的分配和释放, ...

  8. Java c3p0连接池之二

    <?xml version="1.0" encoding="UTF-8"?> <!-- c3p0-config.xml文件配置 --> ...

  9. 如何发布一个Mac应用并使其成为全球付费榜第一

    Readdle公司如何发布第一个 Mac App,并使之成为Mac App Store 全球付费排名第一的 Easy注:自从发布了<程序员如何优雅的挣零花钱?>后,就不断有同学询问怎么做A ...

  10. Leetcode: Bomb Enemy

    Given a 2D grid, each cell is either a wall 'W', an enemy 'E' or empty '0' (the number zero), return ...