当前位置: 首页 > news >正文

驾校视频网站模板中国网络教育云平台免费网课

驾校视频网站模板,中国网络教育云平台免费网课,wordpress 手机判断,海淀教育人才网站《10分钟就能学会.NET Core配置》里详细介绍了.NET Core配置的用法#xff0c;另外我还开源了自定义的配置Provider#xff1a;EF配置Provider和Yaml配置Provider。本文先来聊聊EF配置Provider的实现#xff0c;其中会涉及到EntityFramework Core的知识#xff0c;不熟悉也…《10分钟就能学会.NET Core配置》里详细介绍了.NET Core配置的用法另外我还开源了自定义的配置ProviderEF配置Provider和Yaml配置Provider。本文先来聊聊EF配置Provider的实现其中会涉及到EntityFramework Core的知识不熟悉也没关系且听我慢慢讲来。 配置执行流程 在使用配置的时候都是先new ConfigurationBuilder(),最后调用Build()方法赋值给Configuration属性。那我们就从这个Build方法说起。 Build方法做了什么呢它遍历了所有的配置源等等配置源哪来的还记不记得AddJsonFile,AddCommandLine这些扩展方法它们做的事情就是将配置源添加到ConfigurationBuild中。每个配置源都有一个Build方法它返回一个Provider。遍历所有配置源时调用配置源的Build方法就获得了所有配置源的Provider最后通过构造函数传给ConfigurationRoot。 每个Provider里都有一个Load方法ConfigurationRoot的构造函数会遍历所有的Provider调用它的Load方法。Load方法里需要做的就是把配置源里的配置转换为IDictionarystring,string。 了解了配置执行的流程就可以动手实现自己的Provider了。 EF存储 Json配置Provider的配置存储在Json文件中基于EF的Provider的配置则是存储在数据库中因为使用了EF我们不需要关心使用的是什么数据库。 在数据库中存储配置不支持嵌套和数组只是简单的键值对形式对应数据库表中的两列。使用EF需要先定义一个实体存储配置它包含两个属性对应数据库表中的两列。 internal class Configuration{    public string Key { get; set; }     public string Value { get; set; } } 接着需要定义一个ConfigurationDbContext用于存储和访问配置。 internal class ConfigurationDbContext : DbContext{         private EFConfigurationOptionsBuilder Builder { get; }     public ConfigurationDbContext(EFConfigurationOptionsBuilder options) : base(options.DbContextOptions.Options)    {Builder options;}    public DbSetConfiguration Configurations { get; set; } } EFConfigurationOptionsBuilder是自定义的类它包含2个属性一个用于指定存储配置表的名称另一个用于配置数据库连接及其他配置。 EFConfigurationProvider 自定义Provider可继承ConfigurationProvider实现。在ConfigurationProvider中Load是一个虚方法自定义Provider需要实现Load方法。 internal class EFConfigurationProvider : ConfigurationProvider{ActionEFConfigurationOptionsBuilder OptionsAction { get; }    public EFConfigurationProvider(ActionEFConfigurationOptionsBuilder optionsAction)    {OptionsAction optionsAction;}    public override void Load()    {        var builder new EFConfigurationOptionsBuilder();OptionsAction(builder);        using (var ctx new ConfigurationDbContext(builder)){ctx.Database.EnsureCreated();Data ctx.Configurations.ToDictionary(t t.Key, t t.Value);}} } EFConfigurationSource EFConfigurationSource继承IConfigurationSource实现了Build方法在Build中返回EFConfigurationProvider。 internal class EFConfigurationSource : IConfigurationSource{    private readonly ActionEFConfigurationOptionsBuilder _optionsAction;    public EFConfigurationSource(ActionEFConfigurationOptionsBuilder optionsAction)    {_optionsAction optionsAction;}       public IConfigurationProvider Build(IConfigurationBuilder builder)    {         return new EFConfigurationProvider(_optionsAction);} } AddEntityFramework扩展方法 为添加EF配置源增加一个扩展方法。 public static class EFConfigurationExtensions{     public static IConfigurationBuilder AddEntityFramework(this IConfigurationBuilder builder, ActionEFConfigurationOptionsBuilder setup)    {         return builder.Add(new EFConfigurationSource(setup));} } 使用EF配置Provider var builder new ConfigurationBuilder().AddEntityFramework(options {options.TableName configs;        // 这里使用SQLite作为演示options.DbContextOptions.UseSqlite(Filenameconfig.db);});Configuration builder.Build(); 上面我使用SQLite演示也可以使用SQL Server、MySql、PostgreSQL等。默认配置表的名称为Configuration。 最后 本项目已在github上开源地址https://github.com/chengxulvtu/Cxlt.Extensions.Configuration 在项目中使用可以执行下面的命令 Install-Package Cxlt.Extensions.Configuration.EF 或 dotnet add package Cxlt.Extensions.Configuration.EF 下篇文章《实现自己的.NET Core配置Provider之Yaml》将讲解Yaml配置Provider的细节。 原文地址http://www.cnblogs.com/nianming/p/7092652.html .NET社区新闻深度好文微信中搜索dotNET跨平台或扫描二维码关注
http://www.pierceye.com/news/312464/

相关文章:

  • 网站建设及维护费用网站开发质量控制计划书
  • dede免费网站模板内蒙古住房与建设官方网站
  • 网络设计开发网站电子商务网站建设财务分析
  • 牛商做网站的理念国外便宜域名注册商
  • 深圳网站制作880网页设计与制作教程 个人简历代码
  • 皇岗网站建设济南市住房和城乡建设局
  • 产品创新设计方案seo 网站案例
  • 做名片最好的网站上海网站开发制作公司
  • 网站如何做三端适配wordpress get_the_author_meta
  • 个人介绍微电影网站模板网站制作策划
  • 怎么在网上注册自己的网站网站框架建设
  • 哪个网站做自媒体比较好广西模板十大名牌排名榜
  • 苏州手机网站制作建设视频网站费用
  • 301的网站用什么来做为企业为什么做网站
  • wordpress怎安装关键词优化排名易下拉排名
  • 怎么做网站评估android安卓软件下载
  • 网站建设设计培训班南昌广告公司
  • 网站问责建设书企业网站建设 百度文库
  • 佛山网站建设seo优化建设电子商务系统网站
  • 网站建设功能分为几种购物网站的后台做哪些东西
  • 2017网站建设费用wordpress不使用ip访问
  • 水务 网站建设宁波建站模板系统
  • 方正集团网站是谁做的北京最新发布信息
  • iis7.5添加php网站wordpress内容页自定义字段
  • 设计公司做网站价格图片网站收录
  • 网站做315认证广州中医药资源门户网站
  • 线上营销网站设计网站着陆页有多少个
  • 天津通用网站建设方案聊城做网站的地方
  • 政务网站建设合同dw个人网站模板下载
  • 广州网站优化服务商企业网站建设一站式服务