From 977972b02962f03dfcdc21d9ae02355a8d53aab8 Mon Sep 17 00:00:00 2001 From: zpc Date: Thu, 10 Oct 2024 22:25:18 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0dao=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Code/CloudGaming.Code/Class1.cs | 7 - .../CloudGaming.Code/CloudGaming.Code.csproj | 1 + .../Code/CloudGaming.Code/DataAccess/DAO.cs | 142 ++++++++++++++++++ .../CodeTemplates/EFCore/EntityType.t4 | 2 +- .../Db/Db_Ext/T_Config.cs | 2 +- .../Db/Db_Ext/T_Images.cs | 2 +- .../Db/Db_Game/CloudGamingGameContext.cs | 3 - .../Db/Db_Game/T_CGame_Difficultys.cs | 2 +- .../Db/Db_Game/T_GameConfig.cs | 2 +- .../Db/Db_Game/T_Game_ChildList.cs | 2 +- .../Db/Db_Game/T_Game_ChildTypes.cs | 2 +- .../Db/Db_Game/T_Game_DesktopConfig.cs | 2 +- .../Db/Db_Game/T_Game_DeveloperCompanys.cs | 2 +- .../Db/Db_Game/T_Game_Developers.cs | 2 +- .../Db/Db_Game/T_Game_Issuers.cs | 2 +- .../Db/Db_Game/T_Game_List.cs | 2 +- .../Db/Db_Game/T_Game_OperationModes.cs | 2 +- .../Db/Db_Game/T_Game_Preload.cs | 2 +- .../Db/Db_Game/T_Game_Setting.cs | 2 +- .../Db/Db_Game/T_Game_Tags.cs | 2 +- .../Db/Db_Game/T_Game_Types.cs | 2 +- .../Db/Db_Game/T_Game_UserShare.cs | 7 +- 22 files changed, 161 insertions(+), 33 deletions(-) delete mode 100644 src/CloudGaming/Code/CloudGaming.Code/Class1.cs create mode 100644 src/CloudGaming/Code/CloudGaming.Code/DataAccess/DAO.cs diff --git a/src/CloudGaming/Code/CloudGaming.Code/Class1.cs b/src/CloudGaming/Code/CloudGaming.Code/Class1.cs deleted file mode 100644 index 39a22d6..0000000 --- a/src/CloudGaming/Code/CloudGaming.Code/Class1.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace CloudGaming.Code -{ - public class Class1 - { - - } -} diff --git a/src/CloudGaming/Code/CloudGaming.Code/CloudGaming.Code.csproj b/src/CloudGaming/Code/CloudGaming.Code/CloudGaming.Code.csproj index 9832304..13eab54 100644 --- a/src/CloudGaming/Code/CloudGaming.Code/CloudGaming.Code.csproj +++ b/src/CloudGaming/Code/CloudGaming.Code/CloudGaming.Code.csproj @@ -7,6 +7,7 @@ + diff --git a/src/CloudGaming/Code/CloudGaming.Code/DataAccess/DAO.cs b/src/CloudGaming/Code/CloudGaming.Code/DataAccess/DAO.cs new file mode 100644 index 0000000..bc71a8d --- /dev/null +++ b/src/CloudGaming/Code/CloudGaming.Code/DataAccess/DAO.cs @@ -0,0 +1,142 @@ +using HuanMeng.DotNetCore.Base; +using HuanMeng.DotNetCore.MultiTenant.Contract; +using HuanMeng.DotNetCore.MultiTenant; +using Microsoft.Extensions.DependencyInjection; + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using CloudGaming.GameModel.Db.Db_Ext; +using CloudGaming.GameModel.Db.Db_Game; +using CloudGaming.Model.DbSqlServer.Db_Phone; +using CloudGaming.Model.DbSqlServer.Db_User; + +namespace CloudGaming.Code.DataAccess +{ + /// + /// 数据库访问,开启事务只能一个库的开启 + /// + public class DAO : DaoBase + { + //private IMultiTenantProvider _multiTenantProvider; + private ITenantInfo _tenantInfo; + + /// + /// + /// + public ITenantInfo TenantInfo + { + get + { + if (_tenantInfo == null) + { + this._tenantInfo = _serviceProvider.GetRequiredService(); + } + return this._tenantInfo; + } + } + /// + /// 构造函数 + /// + /// + public DAO(IServiceProvider serviceProvider) : base(serviceProvider) + { + this._tenantInfo = serviceProvider.GetRequiredService(); + } + + /// + /// 构造函数 + /// + /// + public DAO(IServiceProvider serviceProvider, ITenantInfo tenantInfo) : base(serviceProvider) + { + this._tenantInfo = tenantInfo; + + } + #region 扩展 + private EfCoreDaoBase? _daoExt; + /// + /// 数据库[CloudGamingCBT], + /// 更新删除,尽量只操作本bll实例dao获取到的对象,取和存要同一个dao + /// + public EfCoreDaoBase daoExt + { + get + { + if (_daoExt == null) + { + var dbContext = _serviceProvider.GetRequiredService(); + _daoExt = new EfCoreDaoBase(dbContext); + _daoExt.context.TenantInfo = TenantInfo; + } + return _daoExt; + } + } + #endregion + #region 游戏 + private EfCoreDaoBase? _daoGame; + /// + /// 数据库[CloudGamingGameContext], + /// 更新删除,尽量只操作本bll实例dao获取到的对象,取和存要同一个dao + /// + public EfCoreDaoBase daoGame + { + get + { + if (_daoGame == null) + { + var dbContext = _serviceProvider.GetRequiredService(); + _daoGame = new EfCoreDaoBase(dbContext); + _daoGame.context.TenantInfo = TenantInfo; + } + return _daoGame; + } + } + #endregion + + #region app配置 + private EfCoreDaoBase? _daoPhone; + /// + /// 数据库[CloudGamingGameContext], + /// 更新删除,尽量只操作本bll实例dao获取到的对象,取和存要同一个dao + /// + public EfCoreDaoBase daoPhone + { + get + { + if (_daoPhone == null) + { + var dbContext = _serviceProvider.GetRequiredService(); + _daoPhone = new EfCoreDaoBase(dbContext); + _daoPhone.context.TenantInfo = TenantInfo; + } + return _daoPhone; + } + } + #endregion + + #region 用户 + private EfCoreDaoBase? _daoUser; + /// + /// 数据库[CloudGamingGameContext], + /// 更新删除,尽量只操作本bll实例dao获取到的对象,取和存要同一个dao + /// + public EfCoreDaoBase daoUser + { + get + { + if (_daoUser == null) + { + var dbContext = _serviceProvider.GetRequiredService(); + _daoUser = new EfCoreDaoBase(dbContext); + _daoUser.context.TenantInfo = TenantInfo; + } + return _daoUser; + } + } + #endregion + + } +} diff --git a/src/CloudGaming/Model/CloudGaming.GameModel/CodeTemplates/EFCore/EntityType.t4 b/src/CloudGaming/Model/CloudGaming.GameModel/CodeTemplates/EFCore/EntityType.t4 index 2511a3e..8c973da 100644 --- a/src/CloudGaming/Model/CloudGaming.GameModel/CodeTemplates/EFCore/EntityType.t4 +++ b/src/CloudGaming/Model/CloudGaming.GameModel/CodeTemplates/EFCore/EntityType.t4 @@ -64,7 +64,7 @@ namespace <#= NamespaceHint #>; } } #> -public partial class <#= EntityType.Name #>: MultiTenantEntity +public partial class <#= EntityType.Name #> { public <#= EntityType.Name #>() { } diff --git a/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Ext/T_Config.cs b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Ext/T_Config.cs index 24cd892..ec7c5c1 100644 --- a/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Ext/T_Config.cs +++ b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Ext/T_Config.cs @@ -5,7 +5,7 @@ namespace CloudGaming.GameModel.Db.Db_Ext; /// /// App配置 /// -public partial class T_Config: MultiTenantEntity +public partial class T_Config { public T_Config() { } diff --git a/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Ext/T_Images.cs b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Ext/T_Images.cs index d310fdb..75633b6 100644 --- a/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Ext/T_Images.cs +++ b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Ext/T_Images.cs @@ -5,7 +5,7 @@ namespace CloudGaming.GameModel.Db.Db_Ext; /// /// 图片列表 /// -public partial class T_Images: MultiTenantEntity +public partial class T_Images { public T_Images() { } diff --git a/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/CloudGamingGameContext.cs b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/CloudGamingGameContext.cs index 0ed4de2..29e1fde 100644 --- a/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/CloudGamingGameContext.cs +++ b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/CloudGamingGameContext.cs @@ -488,9 +488,6 @@ public partial class CloudGamingGameContext : DbContext entity.ToTable(tb => tb.HasComment("用户分享游戏")); entity.Property(e => e.Id).HasComment("自增"); - entity.Property(e => e.AppId) - .HasDefaultValue(1) - .HasComment("AppId配置"); entity.Property(e => e.CreateTime) .HasDefaultValueSql("(getdate())") .HasComment("创建时间") diff --git a/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_CGame_Difficultys.cs b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_CGame_Difficultys.cs index 74e8226..7b83fe1 100644 --- a/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_CGame_Difficultys.cs +++ b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_CGame_Difficultys.cs @@ -5,7 +5,7 @@ namespace CloudGaming.GameModel.Db.Db_Game; /// /// 难度列表 /// -public partial class T_CGame_Difficultys: MultiTenantEntity +public partial class T_CGame_Difficultys { public T_CGame_Difficultys() { } diff --git a/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_GameConfig.cs b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_GameConfig.cs index bd041f4..e290667 100644 --- a/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_GameConfig.cs +++ b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_GameConfig.cs @@ -5,7 +5,7 @@ namespace CloudGaming.GameModel.Db.Db_Game; /// /// 游戏中配置 /// -public partial class T_GameConfig: MultiTenantEntity +public partial class T_GameConfig { public T_GameConfig() { } diff --git a/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_ChildList.cs b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_ChildList.cs index 7d0c9a1..c11b458 100644 --- a/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_ChildList.cs +++ b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_ChildList.cs @@ -5,7 +5,7 @@ namespace CloudGaming.GameModel.Db.Db_Game; /// /// 游戏多选保存1 游戏类型 2 游戏标签 3 游戏心得4 游戏介绍 5 游戏操作心得 /// -public partial class T_Game_ChildList: MultiTenantEntity +public partial class T_Game_ChildList { public T_Game_ChildList() { } diff --git a/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_ChildTypes.cs b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_ChildTypes.cs index 25ca8ce..bea9a8b 100644 --- a/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_ChildTypes.cs +++ b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_ChildTypes.cs @@ -5,7 +5,7 @@ namespace CloudGaming.GameModel.Db.Db_Game; /// /// 游戏多选保存1 游戏类型2 游戏标签3 游戏心得 4 游戏介绍5 游戏操作心得 /// -public partial class T_Game_ChildTypes: MultiTenantEntity +public partial class T_Game_ChildTypes { public T_Game_ChildTypes() { } diff --git a/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_DesktopConfig.cs b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_DesktopConfig.cs index 13c8b09..391e3c5 100644 --- a/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_DesktopConfig.cs +++ b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_DesktopConfig.cs @@ -5,7 +5,7 @@ namespace CloudGaming.GameModel.Db.Db_Game; /// /// 游戏桌面配置 /// -public partial class T_Game_DesktopConfig: MultiTenantEntity +public partial class T_Game_DesktopConfig { public T_Game_DesktopConfig() { } diff --git a/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_DeveloperCompanys.cs b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_DeveloperCompanys.cs index e1c0bc7..9889f9e 100644 --- a/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_DeveloperCompanys.cs +++ b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_DeveloperCompanys.cs @@ -5,7 +5,7 @@ namespace CloudGaming.GameModel.Db.Db_Game; /// /// 游戏开发商公司 /// -public partial class T_Game_DeveloperCompanys: MultiTenantEntity +public partial class T_Game_DeveloperCompanys { public T_Game_DeveloperCompanys() { } diff --git a/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_Developers.cs b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_Developers.cs index 7525cdd..abcb7d8 100644 --- a/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_Developers.cs +++ b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_Developers.cs @@ -5,7 +5,7 @@ namespace CloudGaming.GameModel.Db.Db_Game; /// /// 开发商 /// -public partial class T_Game_Developers: MultiTenantEntity +public partial class T_Game_Developers { public T_Game_Developers() { } diff --git a/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_Issuers.cs b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_Issuers.cs index 6a54753..fbbecef 100644 --- a/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_Issuers.cs +++ b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_Issuers.cs @@ -5,7 +5,7 @@ namespace CloudGaming.GameModel.Db.Db_Game; /// /// 发行方信息 /// -public partial class T_Game_Issuers: MultiTenantEntity +public partial class T_Game_Issuers { public T_Game_Issuers() { } diff --git a/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_List.cs b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_List.cs index dd4ba58..9e89d3d 100644 --- a/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_List.cs +++ b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_List.cs @@ -5,7 +5,7 @@ namespace CloudGaming.GameModel.Db.Db_Game; /// /// 游戏列表 /// -public partial class T_Game_List: MultiTenantEntity +public partial class T_Game_List { public T_Game_List() { } diff --git a/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_OperationModes.cs b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_OperationModes.cs index a66be72..a53be1f 100644 --- a/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_OperationModes.cs +++ b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_OperationModes.cs @@ -5,7 +5,7 @@ namespace CloudGaming.GameModel.Db.Db_Game; /// /// 游戏操作类型 /// -public partial class T_Game_OperationModes: MultiTenantEntity +public partial class T_Game_OperationModes { public T_Game_OperationModes() { } diff --git a/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_Preload.cs b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_Preload.cs index 8859ecb..36d4acf 100644 --- a/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_Preload.cs +++ b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_Preload.cs @@ -5,7 +5,7 @@ namespace CloudGaming.GameModel.Db.Db_Game; /// /// 预加载游戏 /// -public partial class T_Game_Preload: MultiTenantEntity +public partial class T_Game_Preload { public T_Game_Preload() { } diff --git a/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_Setting.cs b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_Setting.cs index ae4ab30..8c70341 100644 --- a/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_Setting.cs +++ b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_Setting.cs @@ -5,7 +5,7 @@ namespace CloudGaming.GameModel.Db.Db_Game; /// /// 游戏设置配置 /// -public partial class T_Game_Setting: MultiTenantEntity +public partial class T_Game_Setting { public T_Game_Setting() { } diff --git a/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_Tags.cs b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_Tags.cs index 5633d68..cc0f20a 100644 --- a/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_Tags.cs +++ b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_Tags.cs @@ -5,7 +5,7 @@ namespace CloudGaming.GameModel.Db.Db_Game; /// /// 游戏标签 /// -public partial class T_Game_Tags: MultiTenantEntity +public partial class T_Game_Tags { public T_Game_Tags() { } diff --git a/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_Types.cs b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_Types.cs index 39d56b4..d4b3d47 100644 --- a/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_Types.cs +++ b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_Types.cs @@ -5,7 +5,7 @@ namespace CloudGaming.GameModel.Db.Db_Game; /// /// 游戏类型 /// -public partial class T_Game_Types: MultiTenantEntity +public partial class T_Game_Types { public T_Game_Types() { } diff --git a/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_UserShare.cs b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_UserShare.cs index 7980413..3dc33a5 100644 --- a/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_UserShare.cs +++ b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_UserShare.cs @@ -5,7 +5,7 @@ namespace CloudGaming.GameModel.Db.Db_Game; /// /// 用户分享游戏 /// -public partial class T_Game_UserShare: MultiTenantEntity +public partial class T_Game_UserShare { public T_Game_UserShare() { } @@ -48,9 +48,4 @@ public partial class T_Game_UserShare: MultiTenantEntity /// 创建时间 /// public virtual DateTime CreateTime { get; set; } - - /// - /// AppId配置 - /// - public virtual int AppId { get; set; } }