首页 > 代码库 > 玩转ASP.NET 5:数据库连接字符串配置及读取

玩转ASP.NET 5:数据库连接字符串配置及读取

1.连接字符串读取

  • 1.1前言

     本来我想在以后重构时,再来说这个问题。可是有园友问我:如何把数据库连接字符串写到Config.json并读取?

     原来大家玩xml格式配置文件相当熟悉啦。可是ASP.NET 5项目换成越来越流行的JSON格式当配置文件。如果不去阅读源码,仅从Identity模板代码看,还是很迷糊。

  • 1.2Config.json代码

     在BlogASPNET5.ConsoleApp控制台项目(执行程序)中,添加Config.json文件,其代码:

{    "Data": {        "EFContext": {            "ConnectionString": "Server=.;Database=TestDB;UID=sa;PWD=123456;"        }    },    "EntityFramework": {        "EFContext": {            "ConnectionStringKey": "Data:EFContext:ConnectionString"        }    }}

1.2程序集引入

     在BlogASPNET5.Repository中project.json配置: 

     技术分享

     不用这个类库,自己写读取json的键值也行哦。

  • 修改上下文代码 
using BlogASPNET5.Entity.Accounts;using Microsoft.Data.Entity;using Microsoft.Data.Entity.Metadata;using Microsoft.Framework.ConfigurationModel;namespace BlogASPNET5.Repository.Contexts{    public class EFContext : DbContext    {        public DbSet<Role> Roles { get; set; }        public DbSet<User> Users { get; set; }        public IConfiguration Configuration { get; set; }        /// <summary>        /// 从config.json读取连接字符串        /// </summary>        /// <returns></returns>        public string GetConnString()        {            Configuration = new Configuration().AddJsonFile("config.json");            return Configuration.Get("Data:EFContext:ConnectionString");        }        protected override void OnConfiguring(DbContextOptions options)        {            options.UseSqlServer(GetConnString());        }        protected override void OnModelCreating(ModelBuilder modelBuilder)        {            //多对一关系及指定外键            modelBuilder.Entity<User>().ManyToOne(r => r.Role, u => u.Users).ForeignKey(f => f.RoleId);        }    }}


2.小结

     本篇算是对上一篇的补充,也是回答园友问题。当然这只是一种写法,还有更通用的写法……

    (今天时间不是很空闲,没按照“计划”分享!请耐心跟进!)

玩转ASP.NET 5:数据库连接字符串配置及读取