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

做建材营销型网站wordpress淘客采集插件

做建材营销型网站,wordpress淘客采集插件,wordpress+分享后下载,建网站需要多少钱选苏州聚尚网络不定时更新翻译系列#xff0c;此系列更新毫无时间规律#xff0c;文笔菜翻译菜求各位看官老爷们轻喷#xff0c;如觉得我翻译有问题请挪步原博客地址 本博文翻译自#xff1a; http://gunnarpeipman.com/2017/08/database-per-tenant/ 让我们继续使用ASP.NET Core web应用… 不定时更新翻译系列此系列更新毫无时间规律文笔菜翻译菜求各位看官老爷们轻喷如觉得我翻译有问题请挪步原博客地址 本博文翻译自 http://gunnarpeipman.com/2017/08/database-per-tenant/ 让我们继续使用ASP.NET Core web应用程序中的多租户并关注每个租户都有自己的数据库的解决方案。它不仅仅是关于数据库的——可以有更多的服务每个租户都有自己的实例。它使这里提供的解决方案可以轻松地扩展到除SQL Server或其他任何关系数据库之外的其他服务。 以往的工作 在讨论解决方案之前我建议先浏览一下我以前的文章内容包括ASP.NET Core web应用程序中的多租户的一些方面: Entity Framework Core 2.0 全局查询过滤器 在 ASP.NET Core 中执行租户服务 注意! 本文中的代码建立在上述文章的代码之上。 将数据库连接字符串移动到租户配置 这里的问题是如何动态决定使用哪个连接字符串以及如何使用web应用程序配置未更改的方式使连接字符串可用。后者实际上是在我之前的多租户文章中解决的在 ASP.NET Core 中执行租户服务我建议使用我此篇文章中提到的BlobStorageTenantProvider 与前一篇文章不同的是当租户使用不同的数据库时在这些数据库中不需要租户id。不支持软删除的应用程序可以在使用本文建议的解决方案时使用经典的简单数据上下文。 新的租户类有一个额外的属性- DatabaseConnectionString如这里所示。 public class Tenant{    public int Id { get; set; }    public string Name { get; set; }    public string Host { get; set; }    public string DatabaseConnectionString { get; set; } } 在Azure blob存储中保存的租户配置文件将是这样的。 [{Id: 2,Name: Local host,Host: localhost:30172,DatabaseConnectionString: connection string 1},{Id: 3,Name: Customer X,Host: localhost:3331,DatabaseConnectionString: connection string 2},{Id: 4,Name: Customer Y,Host: localhost:33111,DatabaseConnectionString: connection string 3} ] 返回租户而不是租户ID 由于租户可以定义更多的设置所以开始处理租户类而不是租户ID。它将改变我的ITenantProvider接口和BlobStorageTenantProvider类。 public class BlobStorageTenantProvider : ITenantProvider{    private static IListTenant _tenants; private Tenant _tenant; public BlobStorageTenantProvider(IHttpContextAccessor accessor, IConfiguration conf)    {         if(_tenants null){LoadTenants(conf[StorageConnectionString], conf[TenantsContainerName], conf[TenantsBlobName]);} var host accessor.HttpContext.Request.Host.Value;           var tenant _tenants.FirstOrDefault(t t.Host.ToLower() host.ToLower());        if(tenant ! null){_tenant tenant;}}     private void LoadTenants(string connStr, string containerName, string blobName)    {           var storageAccount CloudStorageAccount.Parse(connStr);    var blobClient storageAccount.CreateCloudBlobClient();             var container blobClient.GetContainerReference(containerName);        var blob container.GetBlobReference(blobName);blob.FetchAttributesAsync().GetAwaiter().GetResult(); var fileBytes new byte[blob.Properties.Length]; using (var stream blob.OpenReadAsync().GetAwaiter().GetResult())        using (var textReader new StreamReader(stream))          using (var reader new JsonTextReader(textReader)){_tenants JsonSerializer.Create().DeserializeListTenant(reader);}}     public Tenant GetTenant()    {        return _tenant;} } 动态配置数据上下文 我想在这里多租户应用程序不处理软删除。现在为了使用正确的连接字符串必须修改mult-tenant应用程序的默认数据上下文。 public class PlaylistContext : DbContext{    private readonly Tenant _tenant; public DbSetPlaylist Playlists { get; set; }      public DbSetSong Songs { get; set; } public PlaylistContext(DbContextOptionsPlaylistContext options,ITenantProvider tenantProvider): base(options)    {_tenant tenantProvider.GetTenant();}   protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)    {optionsBuilder.UseSqlServer(_tenant.DatabaseConnectionString); base.OnConfiguring(optionsBuilder);}   protected override void OnModelCreating(ModelBuilder modelBuilder)    {modelBuilder.EntityPlaylist().HasKey(e e.Id);modelBuilder.EntitySong().HasKey(e e.Id); base.OnModelCreating(modelBuilder);} } 在查看代码时很容易看出没有多少代码但它会产生大胆灵活的模型去支持不同的租户策略。 结束 ASP.NET Core的依赖注入模型和Entity Framework Core的灵活性使得在ASP.NET Core web应用程序中支持更复杂的场景变得非常容易。这篇博文关注的是多租户的一个方面——如何支持每个租户数据存储策略的数据库。如果需要的话这个模型也可以扩展到更多的设置。 相关文章 从头编写 asp.net core 2.0 web api 基础框架 (1) Asp.Net Core 2.0 多角色权限认证 调试 ASP.NET Core 2.0 源代码 Entity Framework Core 2.0 全局查询过滤器 在 ASP.NET Core 中执行租户服务 原文地址 http://www.cnblogs.com/sheng-jie/p/7640163.html  .NET社区新闻深度好文微信中搜索dotNET跨平台或扫描二维码关注
http://www.pierceye.com/news/667202/

相关文章:

  • 邵阳 网站开发 招聘桂林阳朔楼盘最新价格
  • 如何建设网站导航内链接wordpress 特别慢
  • 蚌埠网站建设文章网站软件定制开发公司
  • 软件通网站建设百度收录网站电话
  • 取消网站备案制度正规的电商平台有哪些
  • 茶叶网站源码php6731官方网站下载
  • 网站建设mfdos 优帮云制作简历哪个网站好
  • 淮南市城乡建设局网站网站seo收费
  • 陕西手机网站制作描述网站开发的广告词
  • 一个网址建多个网站手机网站数据加载
  • 网站视觉分析上海做saas平台网站的公司
  • 沈阳网站设计网站一键制作
  • 建设工程中标查询网站北京建设质量协会网站
  • 做公司网站要素做关于灯饰的网站
  • 网站编辑工具软件单位发购物或电影卡有哪些app
  • dw网站导航怎么做3免费网站建站
  • 用jsp做网站的代码句容网站建设制作
  • 宁国新站seo网页版微信登录提示二维码已失效
  • 深圳英文网站建设去哪家公司电商网站开发
  • 黑色网站后台出库入库管理软件app
  • 网站建设公司团队简介国外有网站备案制度吗
  • 怎么让公司网站随便就搜的到wordpress后台卡顿
  • 网站怎么做图片动态图片不显示报价单模板怎么做
  • 怎么建一个公司运营网站江西网站建设哪家专业
  • 网站后期维护费用网站开发学徒工作如何
  • 网站建站程序一站式网站建设服务
  • 滨州内做网站系统的公司购物网站开发用什么软件
  • 网站建设静态部分报告总结在合肥哪里学网站建设
  • 建站行业现状网易与暴雪合作
  • 网站中添加百度地图购物网站产品做促销能赚钱吗