用NetCore做项目如果用EF ORM在网上有很多的配置连接字符串,读取以及使用方法
由于很多朋友用的其他ORM如SqlSugar,NH,Dapper等,在读取连接字符串的时候,往往把信息保存到一个配置文件中,例如appsetting.json,
网上有很多关于读取appsetting.json都是通过注入的方式, 在ORM读取配置的时候,都是在一个类库里面,所以用注入的方式有时候不适合【个人理解】
因以上场景,下面这个方法读取配置可以在任何地方使用
喜欢NetCore的朋友,欢迎加群QQ:86594082
源码地址:https://github.com/feiyit/SoaProJect
1、在项目中,新建一个NetCore的类库,创建类ConfigServices
namespace Core.Extensions { /// <summary> /// 读取配置文件 /// </summary> public class ConfigServices { public static IConfiguration Configuration { get; set; } static ConfigServices() { //ReloadOnChange = true 当appsettings.json被修改时重新加载 Configuration = new ConfigurationBuilder() .Add(new JsonConfigurationSource { Path = "appsettings.json", ReloadOnChange = true }) .Build(); } } }
2、在Web项目下面appsettings.json里面增加自定义的配置
{ "DBConnection": { "MySqlConnectionString": "server=localhost;database=fyt_ims;uid=root;pwd=123456;charset='utf8';SslMode=None" }, "Logging": { "IncludeScopes": false, "LogLevel": { "Default": "Warning" } } }
3、新建一个读取配置的类
namespace FytErp.Core.Model.ConfigModel { /// <summary> /// 数据库连接字符串 /// </summary> public class DBConnection { /// <summary> /// MySql数据库连接字符串 /// </summary> public string MySqlConnectionString { get; set; } /// <summary> /// SqlServer数据库连接字符串 /// </summary> public string SqlServerConnectionString { get; set; } } }
4、编写测试读取配置
namespace FytErp.Web.Pages { public class IndexModel : PageModel { public DbConnection DbSetting { get; private set; } public void OnGet() { //获得配置文件中的DBConnection节点 DbSetting = ConfigServices.Configuration.GetSection("DbConnection").Get<DbConnection>(); } } }
5、最终读取结果