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

建网站买的是什么网站seo啥意思

建网站买的是什么,网站seo啥意思,运营实力 网站建设,室内装修设计图片欣赏通过DI依赖注入IDatabase扩展接口,在.NET项目中使用多个数据库实例 目录 内容简介创建数据库扩展接口(继承IDatabase接口)注入IDatabase扩展接口 AddDatabase 扩展方法UseDatabase 扩展方法数据库配置文件 appsettings.json 配置文件Databas…

CSFramework.EF - IDatabase动态代理-开发框架文库

通过DI依赖注入IDatabase扩展接口,在.NET项目中使用多个数据库实例

目录

  • 内容简介
  • 创建数据库扩展接口(继承IDatabase接口)
  • 注入IDatabase扩展接口
    • AddDatabase 扩展方法
    • UseDatabase 扩展方法
  • 数据库配置文件
    • appsettings.json 配置文件
    • DatabaseOptions 类
  • 功能测试 - 通过动态代理创建多个数据库实例
    • WebApi控制器
    • Console输出信息
  • CSFramework.EF 数据库框架

内容简介

通过DI依赖注入IDatabase扩展接口,在.NET Core项目中同时使用多个数据库实例,给开发者一种极其简单的方式访问和操作数据库,代码精简,高效开发。

从容器中获取实例:

var db1 = _service.GetService<ILicenseDatabase>();
var db2 = _service.GetService<ISystemDatabase>();var user = db1.GetQueryable<sys_AdminUser>().FirstOrDefault();
var menu = db2.GetQueryable<tb_MyMenu>().FirstOrDefault();

创建数据库扩展接口(继承IDatabase接口)

    /// <summary>/// 授权系统数据库接口/// </summary>public interface ILicenseDatabase : CSFramework.EF.IDatabase{//}/// <summary>/// CSFramework开发框架系统数据库接口/// </summary>public interface ISystemDatabase : CSFramework.EF.IDatabase{//}

注入IDatabase扩展接口

//注入授权系统数据库
builder.Services.AddDatabase((config) =>
{var key = "Database:CSFramework_LicenseV3";var dbOption = builder.Configuration.GetSection(key).Get<DatabaseOptions>(); //appsettings.jsonconfig.UseDatabase<ILicenseDatabase>(dbOption, optionsBuilder: (op) =>{//这个可以设置参数});
});//注入开发框架系统数据库
builder.Services.AddDatabase((config) =>
{var key = "Database:CSFrameworkV6_System";var dbOption = builder.Configuration.GetSection(key).Get<DatabaseOptions>(); //appsettings.jsonconfig.UseDatabase<ISystemDatabase>(dbOption, optionsBuilder: (op) =>{//这个可以设置参数});
});

AddDatabase 扩展方法

        /// <summary>/// 注入CSFramework.EF DatabaseBuilder构件/// </summary>/// <param name="services">服务集合</param>/// <param name="builder">配置项</param>/// <returns></returns>public static IServiceCollection AddDatabase(this IServiceCollection services, Action<IDatabaseBuilder> builder = null){services.AddOptions<DatabaseOptions>();services.AddLogging();DatabaseBuilder container = new DatabaseBuilder(services);builder?.Invoke(container);services.AddSingleton(container);services.AddSingleton<IDatabaseBuilder>(container);return services;}

UseDatabase 扩展方法

使用动态代理技术,需要添加2个Nuget包:

<PackageReference Include="Castle.Core" Version="5.1.1" />
<PackageReference Include="Dynamitey" Version="2.0.10.189" />

动态代理创建数据库实例,核心代码:

C#

 /// <summary>/// 用于构建和配置CSFramework.EF.IDatabase数据库实例/// </summary>internal class DatabaseBuilder : IDatabaseBuilder{private readonly IServiceCollection _services;public DatabaseBuilder(IServiceCollection services){_services = services;}/// <summary>/// 使用数据库/// </summary>/// <typeparam name="TDatabase">IDatabase派生接口</typeparam>/// <param name="dbOption">数据库配置</param>/// <param name="optionsBuilder">自定义配置</param>/// <returns></returns>public IDatabaseBuilder UseDatabase<TDatabase>(DatabaseOptions dbOption, Action<DatabaseOptions> optionsBuilder)where TDatabase : class, IDatabase{var optionName = typeof(TDatabase).FullName;//接口全名:CSFramework.LicenseServerV3.ILicenseDatabase_services.AddOptions<DatabaseOptions>(optionName);if (optionsBuilder != null){_services.Configure(optionName, optionsBuilder);}_services.AddScoped(serviceProvider =>{var parameter = new DatabaseConfig{ConnectionString = dbOption.ConnectionString,DatabaseType = dbOption.DatabaseType,Schema = dbOption.Schema,EntityTypes = DatabaseEngine.GetEntityTypes(),AllTypes = DatabaseEngine.GetTypes(),CommandTimeout = 30,TableSuffix = "",};IDatabase db = DatabaseFactory.GetDatabase(parameter);if (typeof(TDatabase) == typeof(IDatabase))return (TDatabase)db;elsereturn db.CreateProxy<TDatabase>(); //动态代理创建数据库实例});return this;}}

数据库配置文件

appsettings.json 配置文件

{"Logging": {"LogLevel": {"Default": "Information","Microsoft.AspNetCore": "Warning"}},"AllowedHosts": "*","Database": {//授权系统数据库连接配置"CSFramework_LicenseV3": {"DatabaseType": "SqlServer","ServiceOrSID": "Database", //参考值:Database/Service/SID"Schema": "", //注意:如果连接Database,不需要指定Schema"ConnectionString": "Server=localhost;Database=CSFramework_LicenseV3;User ID=sa;Password=123; Max Pool Size=512; Pooling=true;Connect Timeout=30;TrustServerCertificate=true;"},//开发框架系统数据库连接配置"CSFrameworkV6_System": {"DatabaseType": "SqlServer","ServiceOrSID": "Database", //参考值:Database/Service/SID"Schema": "", //注意:如果连接Database,不需要指定Schema"ConnectionString": "Server=localhost;Database=CSFrameworkV6_System;User ID=sa;Password=123; Max Pool Size=512; Pooling=true;Connect Timeout=30;TrustServerCertificate=true;"},}
}

DatabaseOptions 类

C#

    /// <summary>/// 数据库连接参数配置(加载appsettings.json)/// </summary>internal class DatabaseOptions{  /// <summary>/// 连接字符串/// </summary>public string ConnectionString { get; set; }/// <summary>/// 数据库类型/// </summary>public DatabaseType DatabaseType { get; set; }/// <summary>/// 数据库连接类型。参考值:Database/Service/SID/// </summary>public string ServiceOrSID { get; set; }/// <summary>/// 架构,服务名(oracle)/// </summary>public string Schema { get; set; }}

功能测试 - 通过动态代理创建多个数据库实例

WebApi控制器

C#

[ApiController]
[Route("api/[controller]/[action]")]
[OpenApiTag("API控制器")]
public class LicenseController : ControllerBase
{private ILicenseClient _business;private IServiceProvider _service;public LicenseController(ILicenseClient business,IServiceProvider service){_business = business;_service = service;Console.WriteLine("》》》测试数据库动态代理...");var db1 = _service.GetService<ILicenseDatabase>();var db2 = _service.GetService<ISystemDatabase>();//测试授权系统数据库var user = db1.GetQueryable<sys_AdminUser>().FirstOrDefault();Console.WriteLine("》》》扩展接口:" + typeof(ILicenseDatabase));Console.WriteLine(db1.ConnectionString);Console.WriteLine("用户名:"+user.AccountName);Console.WriteLine();//测试开发框架数据库var menu = db2.GetQueryable<tb_MyMenu>().FirstOrDefault();Console.WriteLine("》》》扩展接口:" + typeof(ISystemDatabase));Console.WriteLine(db2.ConnectionString);Console.WriteLine("菜单名:" + menu.MenuName);}
}

Console输出信息

CSFramework.EF应用 - ASP.NETCore/WebApi使用IDatabase动态代理创建多个数据库实例

CSFramework.EF 数据库框架

CSFramework.EF数据库框架支持MySql/Oracle/SqlServer/达梦-开发框架文库

CSFramework.EF是C/S框架网最新发布的轻量级数据库底层框架,基于EntityFrameworkCore 实体框架封装而成。支持三种主流数据库,分别是SqlServer、Oracle、MySQL,支持国产数据库 - 达梦数据库,可扩展其他数据如 PostgreSQL,MongoDB,SQLLite等。

CSFramework.EF数据库框架提供IDatabase通用接口,里面定义了一组通用的接口方法,如增、删、改、查:Add<T>, Update<T>,Remove<T>,GetQuaryable<T>,支持LINQ及SQL脚本查询和操作数据,支持常用事务、BulkInsert批量插入、数据库元数据查询(如查询表结构、数据库列表、表视图列表、存储过程、函数及参数信息)等功能。

CSFramework.EF数据库框架:

CSFramework.EF数据库框架简介-开发框架文库

footer .net快速开发平台创造卓越品质-开发框架文库


文章转载自:
http://wanjiahandwork.hwLk.cn
http://wanjiajudgement.hwLk.cn
http://wanjiaordovician.hwLk.cn
http://wanjiawallonian.hwLk.cn
http://wanjiabiotite.hwLk.cn
http://wanjiadystrophication.hwLk.cn
http://wanjiabilobate.hwLk.cn
http://wanjiacantonize.hwLk.cn
http://wanjiaunbalance.hwLk.cn
http://wanjiapetulant.hwLk.cn
http://wanjiaobi.hwLk.cn
http://wanjiamercery.hwLk.cn
http://wanjiafaucalize.hwLk.cn
http://wanjiairresolute.hwLk.cn
http://wanjiaknubbly.hwLk.cn
http://wanjiamathematic.hwLk.cn
http://wanjiatragopan.hwLk.cn
http://wanjiasappan.hwLk.cn
http://wanjianor.hwLk.cn
http://wanjiamicrocurie.hwLk.cn
http://wanjiaplasmagel.hwLk.cn
http://wanjiapinery.hwLk.cn
http://wanjiaintriguing.hwLk.cn
http://wanjiacrin.hwLk.cn
http://wanjiaglomerate.hwLk.cn
http://wanjiainscriptionless.hwLk.cn
http://wanjiaannullable.hwLk.cn
http://wanjiasupe.hwLk.cn
http://wanjiafucose.hwLk.cn
http://wanjiaextrasystole.hwLk.cn
http://wanjiaalleviatory.hwLk.cn
http://wanjiaplateholder.hwLk.cn
http://wanjiarasbora.hwLk.cn
http://wanjiasnapbolt.hwLk.cn
http://wanjiaradial.hwLk.cn
http://wanjiapotamometer.hwLk.cn
http://wanjiaorganzine.hwLk.cn
http://wanjiaunevoked.hwLk.cn
http://wanjiaapolitical.hwLk.cn
http://wanjiamediative.hwLk.cn
http://wanjiakieselgur.hwLk.cn
http://wanjiasuoloco.hwLk.cn
http://wanjiawhipstall.hwLk.cn
http://wanjiapamprodactylous.hwLk.cn
http://wanjiahomeothermic.hwLk.cn
http://wanjiabicolour.hwLk.cn
http://wanjiapremium.hwLk.cn
http://wanjiaplaylet.hwLk.cn
http://wanjiawelfarite.hwLk.cn
http://wanjiamanshift.hwLk.cn
http://wanjiabehaviorism.hwLk.cn
http://wanjiaceylonese.hwLk.cn
http://wanjialingcod.hwLk.cn
http://wanjiarococo.hwLk.cn
http://wanjiaesthetics.hwLk.cn
http://wanjiaoutdone.hwLk.cn
http://wanjiaunalloyed.hwLk.cn
http://wanjiainductance.hwLk.cn
http://wanjiaterminal.hwLk.cn
http://wanjiaporphyry.hwLk.cn
http://wanjiavasoconstrictor.hwLk.cn
http://wanjiahokonui.hwLk.cn
http://wanjiangf.hwLk.cn
http://wanjiadehydrate.hwLk.cn
http://wanjiaembryophyte.hwLk.cn
http://wanjiawirepull.hwLk.cn
http://wanjiarevocation.hwLk.cn
http://wanjiafilarial.hwLk.cn
http://wanjiainsecurely.hwLk.cn
http://wanjiasanctuary.hwLk.cn
http://wanjiahendecagon.hwLk.cn
http://wanjiaglycogenic.hwLk.cn
http://wanjiajohnsonese.hwLk.cn
http://wanjiacrucifix.hwLk.cn
http://wanjiacompaction.hwLk.cn
http://wanjiaaplanat.hwLk.cn
http://wanjiafatigued.hwLk.cn
http://wanjiatrimolecular.hwLk.cn
http://wanjiawahabee.hwLk.cn
http://wanjiabehavior.hwLk.cn
http://www.15wanjia.com/news/108396.html

相关文章:

  • 阜阳做网站的公司营销培训
  • 班级网站设计模板个人如何做百度推广
  • 网站引导页在线做花西子网络营销案例分析
  • 网站里的地图定位怎么做100%能上热门的文案
  • 国家信息网aso优化教程
  • 东莞定制网站建设51外链代发网
  • 浦东教育网站官网独立站seo
  • 坂田做网站多少钱游戏推广员到底犯不犯法
  • 租电信服务器开网站百度托管公司
  • 如何做充值网站淘宝关键词指数
  • 电脑网站安全证书有问题如何解决广告设计与制作
  • 做店铺图片什么网站网络营销与直播电商好就业吗
  • 罗马柱 东莞网站建设七牛云
  • 网站建设的网站分析怎么写windows优化大师怎么下载
  • 招聘做网站的需要技术哪些要求企业网站推广优化
  • 网站设计小结成都网站建设
  • 成都户外网站建设石家庄最新疫情最新消息
  • 洛阳公司做网站淘宝指数
  • harry louis做受网站站内优化怎么做
  • 公众号流量投放自己怎么优化我网站关键词
  • 阿里建站价格网络营销的现状
  • 做优惠卷网站倒闭了多少钱网站建站
  • 电子商务网站加密今日军事新闻热点事件
  • 做试题网站百度咨询电话人工台
  • 南宁快速建站模板爱站网关键词挖掘工具熊猫
  • 网站全屏图片怎么做的百度com打开
  • 杭州外贸网站制作产品推广方案范文500字
  • 如何免费注册网站福州seo视频
  • 重庆大渡口营销型网站建设公司推荐重庆百度快照优化
  • 百度网站推广外包营销方式有哪几种