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

低价网站建设推广优化程序开发 网站开发

低价网站建设推广优化,程序开发 网站开发,开封网站建设流程与步骤,网站建设合同审批ASP.NET Core 配置 - 创建自定义配置提供程序在本文中#xff0c;我们将创建一个自定义配置提供程序#xff0c;从数据库读取我们的配置。我们已经了解了默认配置提供程序的工作方式#xff0c;现在我们将实现我们自己的自定义配置提供程序。对于自定义配置提供程序#xf… ASP.NET Core 配置 - 创建自定义配置提供程序在本文中我们将创建一个自定义配置提供程序从数据库读取我们的配置。我们已经了解了默认配置提供程序的工作方式现在我们将实现我们自己的自定义配置提供程序。对于自定义配置提供程序我们将使用 Entity Framework Core并结合 SQL Server 数据库。在这篇文章中我们将讨论•初始化 EF Core•实现自定义 EF Core 提供程序•运行应用程序•结论首先让我们使用数据库优先方法升级我们的解决方案以支持 EF Core 。初始化 EF Core在我们开始之前我们需要先安装两个 Nuget 包 PM Install-Package Microsoft.EntityFrameworkCore.SqlServer -v 3.1.7我们需要这个包因为我们将使用 SQL Server 实例并且 PM Install-Package Microsoft.EntityFrameworkCore.Tools -v 3.1.7因为我们将通过 CLI 执行数据库的初始创建和迁移。我们需要一个包含键值配置对的类Models 文件夹public class ConfigurationEntity {[Key]public string Key { get; set; }public string Value { get; set; } } 和一个DbContext类模型文件夹public class ConfigurationDbContext : DbContext {public ConfigurationDbContext(DbContextOptions options): base(options){}public DbSetConfigurationEntity ConfigurationEntities { get; set; } } 我们只需要一个DbSet的ConfigurationEntity这将映射到我们的数据库中的表。现在我们只需要ConfigureServices()在Startup类中的方法中建立到我们的服务器的连接services.AddDbContextConfigurationDbContext(opts opts.UseSqlServer(Configuration.GetConnectionString(sqlConnection))); 当然您需要将appsettings.json文件中的连接字符串更改为您的数据库。如果您使用的是 SqlExpress它很可能如下所示ConnectionStrings: {sqlConnection: server.\\SQLEXPRESS; databaseCodeMazeCommerce; Integrated Securitytrue }, 就是这样现在我们可以简单地通过包管理器控制台添加初始迁移 PM Add-Migration InitialSetup并将该迁移应用于数据库 Update-Database现在我们的数据库已创建并准备好用于存储配置数据。实现自定义 EF Core 提供程序首先让我们在 Models 文件夹中创建一个文件夹 ConfigurationProviders以便正确地对我们的类进行分组。之后我们需要通过继承ConfigurationProvider类来实际创建一个配置提供者。我们将在ConfigurationProviders文件夹中创建我们自己的提供程序类并将其命名为EFConfigurationProviderpublic class EFConfigurationProvider : ConfigurationProvider {public EFConfigurationProvider(ActionDbContextOptionsBuilder optionsAction){OptionsAction optionsAction;}ActionDbContextOptionsBuilder OptionsAction { get; }public override void Load(){var builder new DbContextOptionsBuilderConfigurationDbContext();OptionsAction(builder);using (var dbContext new ConfigurationDbContext(builder.Options)){dbContext.Database.EnsureCreated();Data !dbContext.ConfigurationEntities.Any()? CreateAndSaveDefaultValues(dbContext): dbContext.ConfigurationEntities.ToDictionary(c c.Key, c c.Value);}}private static IDictionarystring, string CreateAndSaveDefaultValues(ConfigurationDbContext dbContext){var configValues new Dictionarystring, string(StringComparer.OrdinalIgnoreCase){{ Pages:HomePage:WelcomeMessage, Welcome to the ProjectConfigurationDemo Home Page },{ Pages:HomePage:ShowWelcomeMessage, true },{ Pages:HomePage:Color, black },{ Pages:HomePage:UseRandomTitleColor, true }};dbContext.ConfigurationEntities.AddRange(configValues.Select(kvp new ConfigurationEntity{Key kvp.Key,Value kvp.Value}).ToArray());dbContext.SaveChanges();return configValues;} } 这门课乍一看可能有点吓人但其实没那么吓人。构造函数有一个参数即委托ActionDbContextOptionsBuilder optionsAction。稍后我们将使用DbContextOptionsBuilder该类为我们的数据库定义上下文。我们之前定义连接字符串时已经完成了。我们公开了上下文选项构建器以便向我们的自定义提供程序提供该选项。我们正在重写该Load()方法以便ConfigurationEntity使用数据库中的数据填充我们的方法或者如果数据库表为空则创建一些默认的方法。这里的所有都是它的。接下来我们要将我们的配置提供程序注册为源。为了做到这一点我们需要实现IConfigurationSource接口。所以让我们EFConfigurationSource在ConfigurationProviders文件夹中创建类public class EFConfigurationSource : IConfigurationSource {private readonly ActionDbContextOptionsBuilder _optionsAction;public EFConfigurationSource(ActionDbContextOptionsBuilder optionsAction){_optionsAction optionsAction;}public IConfigurationProvider Build(IConfigurationBuilder builder){return new EFConfigurationProvider(_optionsAction);} } 我们只需要实现该Build()方法在我们的例子中它会初始化配置其中包含我们通过配置源构造函数发送的选项。这看起来真的很令人困惑所以让我们看看如何将我们的数据库配置提供程序添加到配置源列表中。我们将以与以前类似的方式进行public static IHostBuilder CreateHostBuilder(string[] args) Host.CreateDefaultBuilder(args).ConfigureWebHostDefaults(webBuilder {webBuilder.UseStartupStartup();}).ConfigureAppConfiguration((hostingContext, configBuilder) {var config configBuilder.Build();var configSource new EFConfigurationSource(opts opts.UseSqlServer(config.GetConnectionString(sqlConnection)));configBuilder.Add(configSource);}); 如您所见我们正在构建配置构建器以获取IConfiguration. 我们需要它因为我们的连接字符串存储在appsettings.json文件中。现在我们可以使用该连接字符串创建一个配置源并使用该configBuilder.Add()方法将其添加到现有配置源中。现在我们要稍微清除一下 appsettings.json 文件{Logging: {LogLevel: {Default: Information,Microsoft: Warning,Microsoft.Hosting.Lifetime: Information}},ConnectionStrings: {sqlConnection: server.\\SQLEXPRESS; databaseCodeMazeCommerce; Integrated Securitytrue},AllowedHosts: * } 我们删除了“页面”部分以确保它是从数据库中读取的。我们需要删除AddDbContext()我们之前在 Startup 类中使用的方法因为它不再需要了。public void ConfigureServices(IServiceCollection services) {//remove!!!services.AddDbContextConfigurationDbContext(opts opts.UseSqlServer(Configuration.GetConnectionString(sqlConnection)));... } 由于本示例不需要任何迁移因此请通过 SQL Management Studio 或通过 SQL Server 对象资源管理器手动创建一个名为“CodeMazeCommerce”的数据库。就是这样让我们运行应用程序。运行应用程序现在如果我们运行应用程序在Startup类中放置一个断点并检查Configuration对象我们将找到我们的配置源如果我们检查数据库我们会看到它被填充让我们继续执行看看我们的应用程序是否仍然按预期工作它仍然像以前一样工作您可以多次刷新页面以确保标题的颜色仍会发生变化。结论在这篇简短的文章中我们已经了解了如何实现我们自己的自定义配置提供程序来读取数据库中的值。
http://www.pierceye.com/news/29515/

相关文章:

  • 景德镇网站建设公司wordpress修改样式
  • 北京建设网站的wifi客户管理系统管理
  • wordpress如何设置网站地图看广告赚钱的平台
  • 简单企业网站建设h5收款平台
  • 北京网站建设及推广招聘开发公司成本费用比例
  • 体育网站模版wordpress 淘宝客模板
  • 最便宜做网站网站设计原型
  • 房产交易网站建设策划案太仓市娄城高新建设有限公司网站
  • flash网站建设教程下载爱南宁官方网站
  • 网站cms系统哪个好用吗张家港网页制作
  • 做网站的关键技术营销师
  • 佛山顺德网站建设公司哪家好展示型网站 带后台
  • 长沙网站建设王道下拉惠wordpress 网站制作
  • 我的三次做网站的经历做推文封面图网站
  • 企业建网站电子商务网站设计与实现论文
  • 怎么做网站的思维导图网站平台方案设计
  • 注册域名查询网站官网wordpress短链接
  • 建设工程业绩补录 网站那种网站打不开
  • 怎么做钓鱼网站生成器ios开发者账号
  • 某电子商务网站建设的详细策划建设一个网站需要哪些功能
  • 重庆永川建设银行网站手机网站与电脑网站兼容
  • 网站的栏目和版块设计的原则合肥市庐阳区住房和城乡建设局网站
  • 通辽建设网站室内设计工作室网站怎么做
  • 写作兼职网站临沂兰山网站建设
  • 襄阳网站开发全国交通建设网官方网站
  • 手机端网站建设的费用清单mysql 怎么存储wordpress
  • 网络游戏美术设计专业大连seo加盟
  • 网站建设主要考虑哪些因素深圳金鼎网站建设
  • 微网站怎么做微名片网站建设宣传广告语
  • 知名网站建设官网云南营销网站建设