玩转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.小结

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

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

时间: 2024-10-07 06:00:04

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

ASP.NET web.config中数据库连接字符串connectionStrings节的配置方法

在ASP.NET开发的网站根目录,有一个名为web.config的文件,顾名思义,这是为整个网站进行配置的文件,其格式为XML格式.这里主要谈谈文件中的<connectionStrings>节. <connectionStrings>节是对连接到数据库的字符串进行配置,由于MS SQL Server与ASP.NET同属于微软的产品,因此是使用ASP.NET开发时首选的数据库是MS SQL Server,本文只讨论对MS SQL Server的连接字符串情况.第一种情况,本地开发时,

ASP.NET数据库连接字符串总结

一.使用OleDbConnection对象连接OLE DB数据源 1.连接Access 数据库 Access 2000: “provider=Microsoft.Jet.Oledb.3.5;Data Source=Access文件路径” Access 2003: “provider=Microsoft.Jet.Oledb.4.0;Data Source=Access文件路径” Access 2007: “provider=Microsoft.Ace.Oledb.12.0;Data Source=

ASP.NET数据库连接字符串的加密与解密

ASP.NET web.config中,数据库连接字符串的加密与解密. 虽然不怎么新鲜,但相信还是有许多人不知道,好,不说废话,直接给方法:开始--->运行,输入cmd,接着输入以下内容 加密: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -pef "connectionStrings" "你的Web项目路径" 解密: C:\WINDOWS\Microsoft.NET\Fram

asp.net中web.config配置节点大全详解【转】

web.config 文件查找规则: (1)如果在当前页面所在目录下存在web.config文件,查看是否存在所要查找的结点名称,如果存在返回结果并停止查找. (2)如果当前页面所在目录下不存在web.config文件或者web.config文件中不存在该结点名,则查找它的上级目录,直到网站的根目录. (3)如果网站根目录下不存在web.config文件或者web.config文件中不存在该节点名则在%windir%"Microsoft.NET"Framework"v2.0.

web.config connectionStrings 数据库连接字符串的解释

先来看一下默认的连接SQL Server数据库配置<connectionStrings>   <add name="LocalSqlServer" connectionString="Data Source=.\SQLExpress;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="

保护代码中的数据库连接字符串和其他敏感设置

本文假定读者熟悉 C# 和 Visual Basic .NET 摘要 保护应用程序机密(如数据库连接字符串和密码)要求仔细考虑许多相关因素,如数据的敏感程度.可以获得访问权限的人以及如何在安全性.性能和可维护性之间获得平衡,等等.本文解释了数据保护的基础知识,并比较了几种可用于保护应用程序设置的技术.作者探讨了要避免的事项,如在源代码中隐藏密钥,以及使用“本地安全机构”.此外,他还提出了一些有效的解决方案,如数据保护 API. 本页内容 数据隐藏限制对数据的访问加密数据权衡选择存储加密数据单向和

从HelloWorld启航——数据库连接字符串的困惑

程序员方阵 数据库连接字符串的困惑 数据库连接字符串的组成 驱动程序 ODBC OLE DB JDBC 比较 数据库链接字符串大全 SQL Server 2005 SQL Native Client ODBC Driver SQL Native Client OLE DB Provider SqlConnection NET MySQL MyODBC OLE DB OleDbConnection NET MySqlConnection NET Oracle ODBC OLE DB OleDbCo

.NET跨平台之旅:数据库连接字符串写法引发的问题

最近在一个ASP.NET Core站点中遇到一个奇怪问题.当用dotnet run命令启动站点后,开始的一段时间请求执行速度超慢,有时要超过20秒,有时甚至超过1分钟,日志中会记录这样的错误: System.Data.SqlClient.SqlException: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was n

Tomcat6.0数据库连接池配置

http://blog.163.com/magicc_love/blog/static/185853662201111101130969/ oracle驱动包Tomcat 6.0配置oracle数据库连接池 安装Tomcat后,在我的电脑-属性—>高级-->环境变量系统变量中添加以下环境变量(假定你的tomcat安装在c:\tomcat); CATALINA_HOME: c:\tomcat CATALINA_BASE: c:\tomcat TOMCAT_HOME: c:\tomcat 然后修改