標籤:
1.連接字串讀取
本來我想在以後重構時,再來說這個問題。可是有園友問我:如何把資料庫連接字串寫到Config.json並讀取?
原來大家玩xml格式設定檔相當熟悉啦。可是ASP.NET 5項目換成越來越流行的JSON格式當設定檔。如果不去閱讀源碼,僅從Identity模板代碼看,還是很迷糊。
在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:資料庫連接字串配置及讀取