本来我想在以后重构时,再来说这个问题。可是有园友问我: 如何把数据库连接字符串写到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:数据库连接字符串配置及读取
标签:
查看更多关于玩转ASP.NET 5:数据库连接字符串配置及读取的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did118535