1.首先要有对应的context实体类,

多个实体类的构造函数的参数都应该是集合

 public class firstContext : DbContext
{
//多个数据库应该使用这个构造函数,参数是上下文的集合
public GalpOnlineContext(DbContextOptions<firstContext> options) : base(options)
{ } //自定义DbContext实体属性名与数据库表对应名称(默认 表名与属性名对应是 User与Users)
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<User>().ToTable("user");
modelBuilder.Entity<Project>().ToTable("project");
//相关表名称的和类的对应
base.OnModelCreating(modelBuilder);
} public DbSet<User> User { get; set; }
//.... //第二种方法,重载父级的构造函数,和配置,这个只能是一个数据库时候的构造函数
/*
public firstContext(DbContextOptions options) : base(options)
{
// Using the default constructor
}*/ }
}

 2.在appsettings.json中进行配置数据库连接的信息

{
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"ConnectionStrings": {
"firstContext": "Server=localhost;database=test;uid=root;pwd=123456;sslmode=none",
"secondContext": "Server=localhost;database=test2;uid=root;pwd=123456;sslmode=none"
},

 3.在startup.cs文件中注册数据库上下文的信息

  public void ConfigureServices(IServiceCollection services)
{
services.Configure<CookiePolicyOptions>(options =>
{
// options.CheckConsentNeeded = context => false;实现session,默认是true
options.CheckConsentNeeded = context => false;
options.MinimumSameSitePolicy = SameSiteMode.None;
}); //注册数据库的服务
string connectionString = Configuration.GetConnectionString("firstContext");
string connectionString2 = Configuration.GetConnectionString("secondContext"); services.AddDbContext<firstContext>(options => options.UseMySql(connectionString));
services.AddDbContext<secondContext>(options => options.UseMySql(connectionString2)); //注册session
services.AddDistributedMemoryCache();
services.AddSession(Options =>
{
Options.IdleTimeout = TimeSpan.FromSeconds(1000);
Options.Cookie.HttpOnly = true;
});
//services.AddMemoryCache();//使用本地缓存必须添加 //注册mvc服务
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1); }

  然后就可以了,在使用的地方引入上下文就可以了

 public class TestController : Controller
{
public readonly firstContext _context;
//构造函数,依赖注入数据库上下文就可以了
public TestController(firstContext context)
{
_context = context;
}
public ActionResult Index(string page)
{
List<Project> projects = _context.Project.ToList();
ViewBag.projects = projects;
return View();
}
}

asp.netCore连接多个数据库的更多相关文章

  1. asp.net 连接SQL Server 数据库并进行相关操作

    asp.net 连接数据库,操作数据库主要需要两个类,一个是SqlConnection,一个是SqlCommand SqlConnection用于连接数据库,打开数据库,关闭数据库. 连接数据库需要特 ...

  2. ASP.NET连接远程Oracle数据库,提示试图加载格式不正确的程序

    VS调试远程连接Oracle数据库,一直报错 由于本地计算机是64位的操作系统,而且也确定安装的Oracle客户端是64位的 ,但是一直提示这个错误. 试了很多方法,终于发现可能是 不能在VS中调试的 ...

  3. ASP.Net 连接多个数据库之间的切换

    本次两个的两个数据是SQL Server 和ORCAL 首先在Web.congfig中 <connectionStrings> </connectionStrings>里面添加 ...

  4. ASP.NET 连接MySQL数据库 详细步骤

    ASP.NET默认的数据库是MS SQL Server,微软的数据库产品.事实上,如果不计成本因素的话,Windows Server + IIS + MS SQL Server + ASP.NET是网 ...

  5. ASP.NET连接Oracle数据库的步骤详解(转)

    ASP.NET连接Oracle数据库的步骤详解   本文我们主要介绍了ASP.NET连接Oracle数据库的步骤及每个步骤需要进行的设置,希望能够对您有所帮助.   在用ASP.NET开发应用程序时, ...

  6. ASP连接读写ACCESS数据库实例(转)

    (一)   数据库的选择:有许多的数据库你可以选择,SQL SERVER.ACCESS(*.mdb).EXCEL(*.xls).FOXPRO(*.dbf)甚至普通的文本文件(*.txt)都可以达到存储 ...

  7. 目录---Asp.NETCore轻松学系列【目录】

    随笔分类 - Asp.NETCore轻松学系列 Asp.NETCore轻松学系列阅读指引目录 摘要: 耗时两个多月,坚持写这个入门系列文章,就是想给后来者更好更快的上手体验,这个系列可以说是从入门到进 ...

  8. 【目录】Asp.NETCore轻松学系列

    随笔分类 - Asp.NETCore轻松学系列 Asp.NETCore轻松学系列阅读指引目录 摘要: 耗时两个多月,坚持写这个入门系列文章,就是想给后来者更好更快的上手体验,这个系列可以说是从入门到进 ...

  9. Asp.NetCore Web开发之ADO.Net

     Asp.NetCore可以说是.Net平台开发网站的一大利器,最近的一大段时间,就要跟大家分享,如何使用这一利器开发网站项目. 要学习网站开发,首先要学习如何使用ADO.Net进行数据库数据的增删改 ...

随机推荐

  1. GO学习笔记 - 用defer来实现try{}finally{}

    在Delphi中,try{}finally{}语句非常有用,对于一定要最终执行的语句,我们放到finally,从而保证程序顺利执行!在GO语言中没有try{}finally{}语句,但是GO语言用另外 ...

  2. 【文文殿下】[BZOJ4327] JSOI2012 玄武密码

    SAM裸题.这道题卡空间.要小心数组别开炸了. #include<cstdio> #include<cstring> typedef long long ll; const i ...

  3. 50余本中外Python电子教程及源码下载地址

    链接:http://pan.baidu.com/s/1c0VTwsC 密码:hapu

  4. Jmeter非GUI运行,生成html报告

    一.JMete执行方式 JMeter执行方式有2种,一种是GUI模式,一种是非GUI模式.GUI模式就是界面模式,非GUI模式就是命令行模式.界面模式主要用来编写和调试脚本用的,项目的真正执行最好是采 ...

  5. Windows文件共享,报错"该用户已禁用"解决方案

    文章背景:学校机器有俩个用户think和adminsitrator.默认administrator禁用,think属于administrators组. 经排错得问题出现情况.因为同学们都是Think用 ...

  6. 架构师养成记--26.vi/vim相关操作

    vi/vim命令模式插入模式 aio编辑模式 : aio就是vi/vim的插入模式命令    作用a         在光标后附加文本A         在本行末附加文本i         在光标钱插 ...

  7. QuantLib 金融计算——随机过程之一般 Black Scholes 过程

    目录 QuantLib 金融计算--随机过程之一般 Black Scholes 过程 一般 Black Scholes 过程 如果未做特别说明,文中的程序都是 Python3 代码. QuantLib ...

  8. 用 Hystrix 构建高可用服务架构

    1 hystrix是什么 在分布式系统中,每个服务都可能会调用很多其他服务,被调用的那些服务就是依赖服务,有的时候某些依赖服务出现故障也是很正常的. Hystrix 可以让我们在分布式系统中对服务间的 ...

  9. java四行代码实现图片下载

    如下: InputStream in = new URL("http://www.updown/thumbnail.jpg).openStream(); Path temp = Paths. ...

  10. Fleury算法

    关于为什么不选桥 因为选桥之后会变成两个联通分支,这时由于可能产生的新联通分支不是孤立顶点,他俩都不联通了,那么也就绝对不可能“一笔画”走下来了 关于为什么可以选除桥之外的任意一条边走 本质原因是因为 ...