diff --git a/src/CloudGaming/CloudGaming.sln b/src/CloudGaming/CloudGaming.sln
index a924c00..a7356f6 100644
--- a/src/CloudGaming/CloudGaming.sln
+++ b/src/CloudGaming/CloudGaming.sln
@@ -28,6 +28,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CloudGaming.Model", "Model\
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CloudGaming.Code", "Code\CloudGaming.Code\CloudGaming.Code.csproj", "{5F851D79-E435-4D16-974A-6D5E3A3269A7}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CloudGaming.CreateDataBase", "Console\CloudGaming.CreateDataBase\CloudGaming.CreateDataBase.csproj", "{393ED915-3F88-4F84-AE2A-5C95F8867F16}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CloudGaming.GameModel", "Model\CloudGaming.GameModel\CloudGaming.GameModel.csproj", "{1120C146-6B83-4E4E-8A39-BD09466C7E1B}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -50,6 +54,14 @@ Global
{5F851D79-E435-4D16-974A-6D5E3A3269A7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5F851D79-E435-4D16-974A-6D5E3A3269A7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5F851D79-E435-4D16-974A-6D5E3A3269A7}.Release|Any CPU.Build.0 = Release|Any CPU
+ {393ED915-3F88-4F84-AE2A-5C95F8867F16}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {393ED915-3F88-4F84-AE2A-5C95F8867F16}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {393ED915-3F88-4F84-AE2A-5C95F8867F16}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {393ED915-3F88-4F84-AE2A-5C95F8867F16}.Release|Any CPU.Build.0 = Release|Any CPU
+ {1120C146-6B83-4E4E-8A39-BD09466C7E1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {1120C146-6B83-4E4E-8A39-BD09466C7E1B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1120C146-6B83-4E4E-8A39-BD09466C7E1B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {1120C146-6B83-4E4E-8A39-BD09466C7E1B}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -59,6 +71,8 @@ Global
{0E60926E-0405-4A99-A3FF-2A494CCF02EA} = {51CB40D2-99F5-43E8-95B4-3A75C91736A6}
{5DAE20D8-B844-4EF8-ADA6-D7594E8ECCF7} = {A3F00FB0-49D6-48B1-99D9-4619634DF8D9}
{5F851D79-E435-4D16-974A-6D5E3A3269A7} = {FCA3CA4B-1993-429A-B2E9-2B05DB44F10E}
+ {393ED915-3F88-4F84-AE2A-5C95F8867F16} = {9F7EF36C-17BB-4F93-927E-F462FE3C9337}
+ {1120C146-6B83-4E4E-8A39-BD09466C7E1B} = {A3F00FB0-49D6-48B1-99D9-4619634DF8D9}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {1D299D92-FA27-47A0-8D78-43D1FAFE7628}
diff --git a/src/CloudGaming/Console/CloudGaming.CreateDataBase/CloudGaming.CreateDataBase.csproj b/src/CloudGaming/Console/CloudGaming.CreateDataBase/CloudGaming.CreateDataBase.csproj
new file mode 100644
index 0000000..d5fe1c7
--- /dev/null
+++ b/src/CloudGaming/Console/CloudGaming.CreateDataBase/CloudGaming.CreateDataBase.csproj
@@ -0,0 +1,23 @@
+
+
+
+ Exe
+ net8.0
+ enable
+ enable
+
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+
+
+
+
+
+
diff --git a/src/CloudGaming/Console/CloudGaming.CreateDataBase/Program.cs b/src/CloudGaming/Console/CloudGaming.CreateDataBase/Program.cs
new file mode 100644
index 0000000..98bea14
--- /dev/null
+++ b/src/CloudGaming/Console/CloudGaming.CreateDataBase/Program.cs
@@ -0,0 +1,17 @@
+// See https://aka.ms/new-console-template for more information
+using CloudGaming.Model.DbSqlServer.Db_Phone;
+using CloudGaming.Model.DbSqlServer.Db_User;
+
+using Microsoft.EntityFrameworkCore;
+//Server=192.168.1.17;Database=CloudGamingUser;User Id=sa;Password=Dbt@com@123;TrustServerCertificate=true;
+var optionsBuilder = new DbContextOptionsBuilder();
+var option = optionsBuilder.UseSqlServer("Server=192.168.1.17;Database=CloudGamingPhone;User Id=sa;Password=Dbt@com@123;TrustServerCertificate=true;").Options;
+CloudGamingPhoneContext cloudGamingPhoneContext = new CloudGamingPhoneContext(option);
+cloudGamingPhoneContext.Database.EnsureCreated();
+var x = cloudGamingPhoneContext.T_Epg_Cfg.Count();
+//Server=192.168.1.17;Database=CloudGamingPhone;User Id=sa;Password=Dbt@com@123;TrustServerCertificate=true;
+var optionsBuilder1 = new DbContextOptionsBuilder();
+var option1 = optionsBuilder1.UseSqlServer("Server=192.168.1.17;Database=CloudGamingUser;User Id=sa;Password=Dbt@com@123;TrustServerCertificate=true;").Options;
+CloudGamingUserContext cloud = new CloudGamingUserContext(option1);
+cloud.Database.EnsureCreated();
+//cloud.Database.
\ No newline at end of file
diff --git a/src/CloudGaming/Model/CloudGaming.GameModel/CloudGaming.GameModel.csproj b/src/CloudGaming/Model/CloudGaming.GameModel/CloudGaming.GameModel.csproj
new file mode 100644
index 0000000..f46fdc8
--- /dev/null
+++ b/src/CloudGaming/Model/CloudGaming.GameModel/CloudGaming.GameModel.csproj
@@ -0,0 +1,20 @@
+
+
+
+ net8.0
+ enable
+ enable
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+
+
+
+
+
diff --git a/src/CloudGaming/Model/CloudGaming.GameModel/CodeTemplates/EFCore/DbContext.t4 b/src/CloudGaming/Model/CloudGaming.GameModel/CodeTemplates/EFCore/DbContext.t4
new file mode 100644
index 0000000..fa670a9
--- /dev/null
+++ b/src/CloudGaming/Model/CloudGaming.GameModel/CodeTemplates/EFCore/DbContext.t4
@@ -0,0 +1,389 @@
+<#@ template hostSpecific="true" #>
+<#@ assembly name="Microsoft.EntityFrameworkCore" #>
+<#@ assembly name="Microsoft.EntityFrameworkCore.Design" #>
+<#@ assembly name="Microsoft.EntityFrameworkCore.Relational" #>
+<#@ assembly name="Microsoft.Extensions.DependencyInjection.Abstractions" #>
+<#@ parameter name="Model" type="Microsoft.EntityFrameworkCore.Metadata.IModel" #>
+<#@ parameter name="Options" type="Microsoft.EntityFrameworkCore.Scaffolding.ModelCodeGenerationOptions" #>
+<#@ parameter name="NamespaceHint" type="System.String" #>
+<#@ import namespace="System.Collections.Generic" #>
+<#@ import namespace="System.Linq" #>
+<#@ import namespace="System.Text" #>
+<#@ import namespace="Microsoft.EntityFrameworkCore" #>
+<#@ import namespace="Microsoft.EntityFrameworkCore.Design" #>
+<#@ import namespace="Microsoft.EntityFrameworkCore.Infrastructure" #>
+<#@ import namespace="Microsoft.EntityFrameworkCore.Scaffolding" #>
+<#@ import namespace="Microsoft.Extensions.DependencyInjection" #>
+<#
+ if (!ProductInfo.GetVersion().StartsWith("8.0"))
+ {
+ Warning("Your templates were created using an older version of Entity Framework. Additional features and bug fixes may be available. See https://aka.ms/efcore-docs-updating-templates for more information.");
+ }
+
+ var services = (IServiceProvider)Host;
+ var providerCode = services.GetRequiredService();
+ var annotationCodeGenerator = services.GetRequiredService();
+ var code = services.GetRequiredService();
+
+ var usings = new List
+ {
+ "System",
+ "System.Collections.Generic",
+ "Microsoft.EntityFrameworkCore"
+ };
+
+ if (NamespaceHint != Options.ModelNamespace
+ && !string.IsNullOrEmpty(Options.ModelNamespace))
+ {
+ usings.Add(Options.ModelNamespace);
+ }
+
+ if (!string.IsNullOrEmpty(NamespaceHint))
+ {
+#>
+namespace <#= NamespaceHint #>;
+
+<#
+ }
+#>
+///
+/// 云游戏实体类
+///
+public partial class <#= Options.ContextName #> : DbContext
+{
+<#
+ if (!Options.SuppressOnConfiguring)
+ {
+#>
+ public <#= Options.ContextName #>() : base()
+ {
+ }
+
+<#
+ }
+#>
+ ///
+ /// 租户信息
+ ///
+ public ITenantInfo? TenantInfo { get; set; }
+
+ public <#= Options.ContextName #>(DbContextOptions<<#= Options.ContextName #>> options)
+ : base(options)
+ {
+ }
+
+ ///
+ ///
+ ///
+ ///
+ public <#= Options.ContextName #>(ITenantInfo tenantInfo)
+ {
+ this.TenantInfo= tenantInfo;
+ }
+
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ public <#= Options.ContextName #>(ITenantInfo tenantInfo, DbContextOptions<<#= Options.ContextName #>> options) : base(options)
+ {
+ this.TenantInfo= tenantInfo;
+ }
+
+
+<#
+ foreach (var entityType in Model.GetEntityTypes().Where(e => !e.IsSimpleManyToManyJoinEntityType()))
+ {
+#>
+ ///
+ /// <#=entityType.GetComment()??"" #>
+ ///
+ public virtual DbSet<<#= entityType.Name #>> <#= entityType.GetDbSetName() #> { get; set; }
+
+<#
+ }
+
+ if (!Options.SuppressOnConfiguring)
+ {
+#>
+ protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
+<#
+ if (!Options.SuppressConnectionStringWarning)
+ {
+#>
+<#
+ }
+
+ var useProviderCall = providerCode.GenerateUseProvider(Options.ConnectionString);
+ usings.AddRange(useProviderCall.GetRequiredUsings());
+#>
+ => optionsBuilder<#= code.Fragment(useProviderCall, indent: 3) #>;
+
+<#
+ }
+
+#>
+ protected override void OnModelCreating(ModelBuilder modelBuilder)
+ {
+<#
+ var anyConfiguration = false;
+
+ var modelFluentApiCalls = Model.GetFluentApiCalls(annotationCodeGenerator);
+ if (modelFluentApiCalls != null)
+ {
+ usings.AddRange(modelFluentApiCalls.GetRequiredUsings());
+#>
+ modelBuilder<#= code.Fragment(modelFluentApiCalls, indent: 3) #>;
+<#
+ anyConfiguration = true;
+ }
+
+ StringBuilder mainEnvironment;
+ foreach (var entityType in Model.GetEntityTypes().Where(e => !e.IsSimpleManyToManyJoinEntityType()))
+ {
+ // Save all previously generated code, and start generating into a new temporary environment
+ mainEnvironment = GenerationEnvironment;
+ GenerationEnvironment = new StringBuilder();
+
+ if (anyConfiguration)
+ {
+ WriteLine("");
+ }
+
+ var anyEntityTypeConfiguration = false;
+#>
+ modelBuilder.Entity<<#= entityType.Name #>>(entity =>
+ {
+<#
+ var key = entityType.FindPrimaryKey();
+ if (key != null)
+ {
+ var keyFluentApiCalls = key.GetFluentApiCalls(annotationCodeGenerator);
+ if (keyFluentApiCalls != null
+ || (!key.IsHandledByConvention() && !Options.UseDataAnnotations))
+ {
+ if (keyFluentApiCalls != null)
+ {
+ usings.AddRange(keyFluentApiCalls.GetRequiredUsings());
+ }
+#>
+ entity.HasKey(<#= code.Lambda(key.Properties, "e") #>)<#= code.Fragment(keyFluentApiCalls, indent: 4) #>;
+<#
+ anyEntityTypeConfiguration = true;
+ }
+ }
+
+ var entityTypeFluentApiCalls = entityType.GetFluentApiCalls(annotationCodeGenerator)
+ ?.FilterChain(c => !(Options.UseDataAnnotations && c.IsHandledByDataAnnotations));
+ if (entityTypeFluentApiCalls != null)
+ {
+ usings.AddRange(entityTypeFluentApiCalls.GetRequiredUsings());
+
+ if (anyEntityTypeConfiguration)
+ {
+ WriteLine("");
+ }
+#>
+ entity<#= code.Fragment(entityTypeFluentApiCalls, indent: 4) #>;
+<#
+ anyEntityTypeConfiguration = true;
+ }
+
+ foreach (var index in entityType.GetIndexes()
+ .Where(i => !(Options.UseDataAnnotations && i.IsHandledByDataAnnotations(annotationCodeGenerator))))
+ {
+ if (anyEntityTypeConfiguration)
+ {
+ WriteLine("");
+ }
+
+ var indexFluentApiCalls = index.GetFluentApiCalls(annotationCodeGenerator);
+ if (indexFluentApiCalls != null)
+ {
+ usings.AddRange(indexFluentApiCalls.GetRequiredUsings());
+ }
+#>
+ entity.HasIndex(<#= code.Lambda(index.Properties, "e") #>, <#= code.Literal(index.GetDatabaseName()) #>)<#= code.Fragment(indexFluentApiCalls, indent: 4) #>;
+<#
+ anyEntityTypeConfiguration = true;
+ }
+
+ var firstProperty = true;
+ foreach (var property in entityType.GetProperties())
+ {
+ var propertyFluentApiCalls = property.GetFluentApiCalls(annotationCodeGenerator)
+ ?.FilterChain(c => !(Options.UseDataAnnotations && c.IsHandledByDataAnnotations)
+ && !(c.Method == "IsRequired" && Options.UseNullableReferenceTypes && !property.ClrType.IsValueType));
+ if (propertyFluentApiCalls == null)
+ {
+ continue;
+ }
+
+ usings.AddRange(propertyFluentApiCalls.GetRequiredUsings());
+
+ if (anyEntityTypeConfiguration && firstProperty)
+ {
+ WriteLine("");
+ }
+#>
+ entity.Property(e => e.<#= property.Name #>)<#= code.Fragment(propertyFluentApiCalls, indent: 4) #>;
+<#
+ anyEntityTypeConfiguration = true;
+ firstProperty = false;
+ }
+
+ foreach (var foreignKey in entityType.GetForeignKeys())
+ {
+ var foreignKeyFluentApiCalls = foreignKey.GetFluentApiCalls(annotationCodeGenerator)
+ ?.FilterChain(c => !(Options.UseDataAnnotations && c.IsHandledByDataAnnotations));
+ if (foreignKeyFluentApiCalls == null)
+ {
+ continue;
+ }
+
+ usings.AddRange(foreignKeyFluentApiCalls.GetRequiredUsings());
+
+ if (anyEntityTypeConfiguration)
+ {
+ WriteLine("");
+ }
+#>
+ entity.HasOne(d => d.<#= foreignKey.DependentToPrincipal.Name #>).<#= foreignKey.IsUnique ? "WithOne" : "WithMany" #>(<#= foreignKey.PrincipalToDependent != null ? $"p => p.{foreignKey.PrincipalToDependent.Name}" : "" #>)<#= code.Fragment(foreignKeyFluentApiCalls, indent: 4) #>;
+<#
+ anyEntityTypeConfiguration = true;
+ }
+
+ foreach (var skipNavigation in entityType.GetSkipNavigations().Where(n => n.IsLeftNavigation()))
+ {
+ if (anyEntityTypeConfiguration)
+ {
+ WriteLine("");
+ }
+
+ var left = skipNavigation.ForeignKey;
+ var leftFluentApiCalls = left.GetFluentApiCalls(annotationCodeGenerator, useStrings: true);
+ var right = skipNavigation.Inverse.ForeignKey;
+ var rightFluentApiCalls = right.GetFluentApiCalls(annotationCodeGenerator, useStrings: true);
+ var joinEntityType = skipNavigation.JoinEntityType;
+
+ if (leftFluentApiCalls != null)
+ {
+ usings.AddRange(leftFluentApiCalls.GetRequiredUsings());
+ }
+
+ if (rightFluentApiCalls != null)
+ {
+ usings.AddRange(rightFluentApiCalls.GetRequiredUsings());
+ }
+#>
+ entity.HasMany(d => d.<#= skipNavigation.Name #>).WithMany(p => p.<#= skipNavigation.Inverse.Name #>)
+ .UsingEntity>(
+ <#= code.Literal(joinEntityType.Name) #>,
+ r => r.HasOne<<#= right.PrincipalEntityType.Name #>>().WithMany()<#= code.Fragment(rightFluentApiCalls, indent: 6) #>,
+ l => l.HasOne<<#= left.PrincipalEntityType.Name #>>().WithMany()<#= code.Fragment(leftFluentApiCalls, indent: 6) #>,
+ j =>
+ {
+<#
+ var joinKey = joinEntityType.FindPrimaryKey();
+ var joinKeyFluentApiCalls = joinKey.GetFluentApiCalls(annotationCodeGenerator);
+
+ if (joinKeyFluentApiCalls != null)
+ {
+ usings.AddRange(joinKeyFluentApiCalls.GetRequiredUsings());
+ }
+#>
+ j.HasKey(<#= code.Arguments(joinKey.Properties.Select(e => e.Name)) #>)<#= code.Fragment(joinKeyFluentApiCalls, indent: 7) #>;
+<#
+ var joinEntityTypeFluentApiCalls = joinEntityType.GetFluentApiCalls(annotationCodeGenerator);
+ if (joinEntityTypeFluentApiCalls != null)
+ {
+ usings.AddRange(joinEntityTypeFluentApiCalls.GetRequiredUsings());
+#>
+ j<#= code.Fragment(joinEntityTypeFluentApiCalls, indent: 7) #>;
+<#
+ }
+
+ foreach (var index in joinEntityType.GetIndexes())
+ {
+ var indexFluentApiCalls = index.GetFluentApiCalls(annotationCodeGenerator);
+ if (indexFluentApiCalls != null)
+ {
+ usings.AddRange(indexFluentApiCalls.GetRequiredUsings());
+ }
+#>
+ j.HasIndex(<#= code.Literal(index.Properties.Select(e => e.Name).ToArray()) #>, <#= code.Literal(index.GetDatabaseName()) #>)<#= code.Fragment(indexFluentApiCalls, indent: 7) #>;
+<#
+ }
+
+ foreach (var property in joinEntityType.GetProperties())
+ {
+ var propertyFluentApiCalls = property.GetFluentApiCalls(annotationCodeGenerator);
+ if (propertyFluentApiCalls == null)
+ {
+ continue;
+ }
+
+ usings.AddRange(propertyFluentApiCalls.GetRequiredUsings());
+#>
+ j.IndexerProperty<<#= code.Reference(property.ClrType) #>>(<#= code.Literal(property.Name) #>)<#= code.Fragment(propertyFluentApiCalls, indent: 7) #>;
+
+<#
+ }
+#>
+ });
+<#
+ anyEntityTypeConfiguration = true;
+ }
+
+#>
+
+ });
+<#
+ // If any signicant code was generated, append it to the main environment
+ if (anyEntityTypeConfiguration)
+ {
+ mainEnvironment.Append(GenerationEnvironment);
+ anyConfiguration = true;
+ }
+
+ // Resume generating code into the main environment
+ GenerationEnvironment = mainEnvironment;
+ }
+
+ foreach (var sequence in Model.GetSequences())
+ {
+ var needsType = sequence.Type != typeof(long);
+ var needsSchema = !string.IsNullOrEmpty(sequence.Schema) && sequence.Schema != sequence.Model.GetDefaultSchema();
+ var sequenceFluentApiCalls = sequence.GetFluentApiCalls(annotationCodeGenerator);
+#>
+ modelBuilder.HasSequence<#= needsType ? $"<{code.Reference(sequence.Type)}>" : "" #>(<#= code.Literal(sequence.Name) #><#= needsSchema ? $", {code.Literal(sequence.Schema)}" : "" #>)<#= code.Fragment(sequenceFluentApiCalls, indent: 3) #>;
+<#
+ }
+
+ if (anyConfiguration)
+ {
+ WriteLine("");
+ }
+#>
+ OnModelCreatingPartial(modelBuilder);
+ }
+
+ partial void OnModelCreatingPartial(ModelBuilder modelBuilder);
+}
+<#
+ mainEnvironment = GenerationEnvironment;
+ GenerationEnvironment = new StringBuilder();
+
+ foreach (var ns in usings.Distinct().OrderBy(x => x, new NamespaceComparer()))
+ {
+#>
+using <#= ns #>;
+<#
+ }
+
+ WriteLine("");
+
+ GenerationEnvironment.Append(mainEnvironment);
+#>
diff --git a/src/CloudGaming/Model/CloudGaming.GameModel/CodeTemplates/EFCore/EntityType.t4 b/src/CloudGaming/Model/CloudGaming.GameModel/CodeTemplates/EFCore/EntityType.t4
new file mode 100644
index 0000000..2511a3e
--- /dev/null
+++ b/src/CloudGaming/Model/CloudGaming.GameModel/CodeTemplates/EFCore/EntityType.t4
@@ -0,0 +1,185 @@
+<#@ template hostSpecific="true" #>
+<#@ assembly name="Microsoft.EntityFrameworkCore" #>
+<#@ assembly name="Microsoft.EntityFrameworkCore.Design" #>
+<#@ assembly name="Microsoft.EntityFrameworkCore.Relational" #>
+<#@ assembly name="Microsoft.Extensions.DependencyInjection.Abstractions" #>
+<#@ parameter name="EntityType" type="Microsoft.EntityFrameworkCore.Metadata.IEntityType" #>
+<#@ parameter name="Options" type="Microsoft.EntityFrameworkCore.Scaffolding.ModelCodeGenerationOptions" #>
+<#@ parameter name="NamespaceHint" type="System.String" #>
+<#@ import namespace="System.Collections.Generic" #>
+<#@ import namespace="System.ComponentModel.DataAnnotations" #>
+<#@ import namespace="System.Linq" #>
+<#@ import namespace="System.Text" #>
+<#@ import namespace="Microsoft.EntityFrameworkCore" #>
+<#@ import namespace="Microsoft.EntityFrameworkCore.Design" #>
+<#@ import namespace="Microsoft.Extensions.DependencyInjection" #>
+<#
+ if (EntityType.IsSimpleManyToManyJoinEntityType())
+ {
+ // Don't scaffold these
+ return "";
+ }
+
+ var services = (IServiceProvider)Host;
+ var annotationCodeGenerator = services.GetRequiredService();
+ var code = services.GetRequiredService();
+
+ var usings = new List
+ {
+ // "System",
+ //"System.Collections.Generic",
+ };
+
+ if (Options.UseDataAnnotations)
+ {
+ usings.Add("System.ComponentModel.DataAnnotations");
+ usings.Add("System.ComponentModel.DataAnnotations.Schema");
+ usings.Add("Microsoft.EntityFrameworkCore");
+ }
+
+ if (!string.IsNullOrEmpty(NamespaceHint))
+ {
+#>
+namespace <#= NamespaceHint #>;
+
+<#
+ }
+
+ if (!string.IsNullOrEmpty(EntityType.GetComment()))
+ {
+#>
+///
+/// <#= code.XmlComment(EntityType.GetComment()) #>
+///
+<#
+ }
+
+ if (Options.UseDataAnnotations)
+ {
+ foreach (var dataAnnotation in EntityType.GetDataAnnotations(annotationCodeGenerator))
+ {
+#>
+<#= code.Fragment(dataAnnotation) #>
+<#
+ }
+ }
+#>
+public partial class <#= EntityType.Name #>: MultiTenantEntity
+{
+ public <#= EntityType.Name #>() { }
+
+<#
+ var firstProperty = true;
+ foreach (var property in EntityType.GetProperties().OrderBy(p => p.GetColumnOrder() ?? -1))
+ {
+ if (!firstProperty)
+ {
+ WriteLine("");
+ }
+
+ if(property.Name=="TenantId"){
+ #>
+ ///
+ /// 所属租户
+ ///
+ public override Guid TenantId { get; set; }
+ <#
+ continue;
+ }
+ if (!string.IsNullOrEmpty(property.GetComment()))
+ {
+#>
+ ///
+ /// <#= code.XmlComment(property.GetComment(), indent: 1) #>
+ ///
+<#
+ }
+
+ if (Options.UseDataAnnotations)
+ {
+ var dataAnnotations = property.GetDataAnnotations(annotationCodeGenerator)
+ .Where(a => !(a.Type == typeof(RequiredAttribute) && Options.UseNullableReferenceTypes && !property.ClrType.IsValueType));
+ foreach (var dataAnnotation in dataAnnotations)
+ {
+#>
+ <#= code.Fragment(dataAnnotation) #>
+<#
+ }
+ }
+
+ usings.AddRange(code.GetRequiredUsings(property.ClrType));
+
+ var needsNullable = Options.UseNullableReferenceTypes && property.IsNullable && !property.ClrType.IsValueType;
+ var needsInitializer = Options.UseNullableReferenceTypes && !property.IsNullable && !property.ClrType.IsValueType;
+
+#>
+ public virtual <#= code.Reference(property.ClrType) #><#= needsNullable ? "?" : "" #> <#= property.Name #> { get; set; }<#= needsInitializer ? " = null!;" : "" #>
+<#
+ firstProperty = false;
+ }
+
+ foreach (var navigation in EntityType.GetNavigations())
+ {
+ WriteLine("");
+
+ if (Options.UseDataAnnotations)
+ {
+ foreach (var dataAnnotation in navigation.GetDataAnnotations(annotationCodeGenerator))
+ {
+#>
+ <#= code.Fragment(dataAnnotation) #>
+<#
+ }
+ }
+
+ var targetType = navigation.TargetEntityType.Name;
+ if (navigation.IsCollection)
+ {
+#>
+ public virtual ICollection<<#= targetType #>> <#= navigation.Name #> { get; set; } = new List<<#= targetType #>>();
+<#
+ }
+ else
+ {
+ var needsNullable = Options.UseNullableReferenceTypes && !(navigation.ForeignKey.IsRequired && navigation.IsOnDependent);
+ var needsInitializer = Options.UseNullableReferenceTypes && navigation.ForeignKey.IsRequired && navigation.IsOnDependent;
+#>
+ public virtual <#= targetType #><#= needsNullable ? "?" : "" #> <#= navigation.Name #> { get; set; }<#= needsInitializer ? " = null!;" : "" #>
+<#
+ }
+ }
+
+ foreach (var skipNavigation in EntityType.GetSkipNavigations())
+ {
+ WriteLine("");
+
+ if (Options.UseDataAnnotations)
+ {
+ foreach (var dataAnnotation in skipNavigation.GetDataAnnotations(annotationCodeGenerator))
+ {
+#>
+ <#= code.Fragment(dataAnnotation) #>
+<#
+ }
+ }
+#>
+ public virtual ICollection<<#= skipNavigation.TargetEntityType.Name #>> <#= skipNavigation.Name #> { get; set; } = new List<<#= skipNavigation.TargetEntityType.Name #>>();
+<#
+ }
+#>
+}
+<#
+ var previousOutput = GenerationEnvironment;
+ GenerationEnvironment = new StringBuilder();
+
+ foreach (var ns in usings.Distinct().OrderBy(x => x, new NamespaceComparer()))
+ {
+#>
+using <#= ns #>;
+<#
+ }
+
+ WriteLine("");
+
+ GenerationEnvironment.Append(previousOutput);
+#>
diff --git a/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Ext/CloudGamingCBTContext.cs b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Ext/CloudGamingCBTContext.cs
new file mode 100644
index 0000000..04a0bd4
--- /dev/null
+++ b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Ext/CloudGamingCBTContext.cs
@@ -0,0 +1,135 @@
+using System;
+using System.Collections.Generic;
+using Microsoft.EntityFrameworkCore;
+
+namespace CloudGaming.GameModel.Db.Db_Ext;
+
+///
+/// 云游戏实体类
+///
+public partial class CloudGamingCBTContext : DbContext
+{
+ public CloudGamingCBTContext() : base()
+ {
+ }
+
+ ///
+ /// 租户信息
+ ///
+ public ITenantInfo? TenantInfo { get; set; }
+
+ public CloudGamingCBTContext(DbContextOptions options)
+ : base(options)
+ {
+ }
+
+ ///
+ ///
+ ///
+ ///
+ public CloudGamingCBTContext(ITenantInfo tenantInfo)
+ {
+ this.TenantInfo= tenantInfo;
+ }
+
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ public CloudGamingCBTContext(ITenantInfo tenantInfo, DbContextOptions options) : base(options)
+ {
+ this.TenantInfo= tenantInfo;
+ }
+
+
+ ///
+ /// App配置
+ ///
+ public virtual DbSet T_Config { get; set; }
+
+ ///
+ /// 图片列表
+ ///
+ public virtual DbSet T_Images { get; set; }
+
+ protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
+ => optionsBuilder.UseSqlServer("Server=192.168.1.17;Database=CloudGamingCBT;User Id=sa;Password=Dbt@com@123;TrustServerCertificate=true;");
+
+ protected override void OnModelCreating(ModelBuilder modelBuilder)
+ {
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_T_APP_CONFIG");
+
+ entity.ToTable(tb => tb.HasComment("App配置"));
+
+ entity.Property(e => e.BossId)
+ .HasMaxLength(200)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.ConfigStr)
+ .HasMaxLength(2000)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.Continent)
+ .HasMaxLength(200)
+ .HasComment("州 例:亚洲")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.CountryName)
+ .HasMaxLength(200)
+ .HasComment("国家 例:中国")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.CreatTime).HasColumnType("datetime");
+ entity.Property(e => e.Desc)
+ .HasMaxLength(2000)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.Plat)
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.ShowName)
+ .HasMaxLength(200)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.UpdateTime).HasColumnType("datetime");
+
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_T_VL_UI_IMAGES");
+
+ entity.ToTable(tb => tb.HasComment("图片列表"));
+
+ entity.Property(e => e.CreateTime)
+ .HasComment("创建时间")
+ .HasColumnType("datetime");
+ entity.Property(e => e.Desc)
+ .HasMaxLength(100)
+ .HasComment("备注")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.ImageId).HasComment("图片Id");
+ entity.Property(e => e.Language)
+ .HasMaxLength(20)
+ .HasDefaultValue("zh")
+ .HasComment("语言")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.Name)
+ .HasMaxLength(50)
+ .HasComment("图片名称")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.Type).HasComment("类型");
+ entity.Property(e => e.UpdateTime)
+ .HasComment("修改时间")
+ .HasColumnType("datetime");
+ entity.Property(e => e.Url)
+ .HasMaxLength(200)
+ .HasComment("图片地址")
+ .UseCollation("Chinese_PRC_CI_AS");
+
+ });
+
+ OnModelCreatingPartial(modelBuilder);
+ }
+
+ partial void OnModelCreatingPartial(ModelBuilder modelBuilder);
+}
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
new file mode 100644
index 0000000..24cd892
--- /dev/null
+++ b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Ext/T_Config.cs
@@ -0,0 +1,47 @@
+using System;
+
+namespace CloudGaming.GameModel.Db.Db_Ext;
+
+///
+/// App配置
+///
+public partial class T_Config: MultiTenantEntity
+{
+ public T_Config() { }
+
+ public virtual int Id { get; set; }
+
+ public virtual int? ConfigType { get; set; }
+
+ public virtual int? ConfigId { get; set; }
+
+ public virtual bool? IsShow { get; set; }
+
+ public virtual string? ShowName { get; set; }
+
+ public virtual string? Desc { get; set; }
+
+ public virtual DateTime? UpdateTime { get; set; }
+
+ public virtual DateTime? CreatTime { get; set; }
+
+ public virtual int? ConfigNum { get; set; }
+
+ public virtual int? ConfigNum2 { get; set; }
+
+ public virtual string? ConfigStr { get; set; }
+
+ public virtual string? BossId { get; set; }
+
+ public virtual string? Plat { get; set; }
+
+ ///
+ /// 州 例:亚洲
+ ///
+ public virtual string? Continent { get; set; }
+
+ ///
+ /// 国家 例:中国
+ ///
+ public virtual string? CountryName { get; set; }
+}
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
new file mode 100644
index 0000000..d310fdb
--- /dev/null
+++ b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Ext/T_Images.cs
@@ -0,0 +1,53 @@
+using System;
+
+namespace CloudGaming.GameModel.Db.Db_Ext;
+
+///
+/// 图片列表
+///
+public partial class T_Images: MultiTenantEntity
+{
+ public T_Images() { }
+
+ public virtual int Id { get; set; }
+
+ ///
+ /// 类型
+ ///
+ public virtual int? Type { get; set; }
+
+ ///
+ /// 图片Id
+ ///
+ public virtual int ImageId { get; set; }
+
+ ///
+ /// 图片名称
+ ///
+ public virtual string? Name { get; set; }
+
+ ///
+ /// 图片地址
+ ///
+ public virtual string? Url { get; set; }
+
+ ///
+ /// 修改时间
+ ///
+ public virtual DateTime? UpdateTime { get; set; }
+
+ ///
+ /// 创建时间
+ ///
+ public virtual DateTime? CreateTime { get; set; }
+
+ ///
+ /// 备注
+ ///
+ public virtual string? Desc { get; set; }
+
+ ///
+ /// 语言
+ ///
+ public virtual string Language { get; set; } = null!;
+}
diff --git a/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/CloudGamingGameContext.cs b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/CloudGamingGameContext.cs
new file mode 100644
index 0000000..0ed4de2
--- /dev/null
+++ b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/CloudGamingGameContext.cs
@@ -0,0 +1,527 @@
+using System;
+using System.Collections.Generic;
+using Microsoft.EntityFrameworkCore;
+
+namespace CloudGaming.GameModel.Db.Db_Game;
+
+///
+/// 云游戏实体类
+///
+public partial class CloudGamingGameContext : DbContext
+{
+ public CloudGamingGameContext() : base()
+ {
+ }
+
+ ///
+ /// 租户信息
+ ///
+ public ITenantInfo? TenantInfo { get; set; }
+
+ public CloudGamingGameContext(DbContextOptions options)
+ : base(options)
+ {
+ }
+
+ ///
+ ///
+ ///
+ ///
+ public CloudGamingGameContext(ITenantInfo tenantInfo)
+ {
+ this.TenantInfo= tenantInfo;
+ }
+
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ public CloudGamingGameContext(ITenantInfo tenantInfo, DbContextOptions options) : base(options)
+ {
+ this.TenantInfo= tenantInfo;
+ }
+
+
+ ///
+ /// 难度列表
+ ///
+ public virtual DbSet T_CGame_Difficultys { get; set; }
+
+ ///
+ /// 游戏中配置
+ ///
+ public virtual DbSet T_GameConfig { get; set; }
+
+ ///
+ /// 游戏多选保存1 游戏类型 2 游戏标签 3 游戏心得4 游戏介绍 5 游戏操作心得
+ ///
+ public virtual DbSet T_Game_ChildList { get; set; }
+
+ ///
+ /// 游戏多选保存1 游戏类型2 游戏标签3 游戏心得 4 游戏介绍5 游戏操作心得
+ ///
+ public virtual DbSet T_Game_ChildTypes { get; set; }
+
+ ///
+ /// 游戏桌面配置
+ ///
+ public virtual DbSet T_Game_DesktopConfig { get; set; }
+
+ ///
+ /// 游戏开发商公司
+ ///
+ public virtual DbSet T_Game_DeveloperCompanys { get; set; }
+
+ ///
+ /// 开发商
+ ///
+ public virtual DbSet T_Game_Developers { get; set; }
+
+ ///
+ /// 发行方信息
+ ///
+ public virtual DbSet T_Game_Issuers { get; set; }
+
+ ///
+ /// 游戏列表
+ ///
+ public virtual DbSet T_Game_List { get; set; }
+
+ ///
+ /// 游戏操作类型
+ ///
+ public virtual DbSet T_Game_OperationModes { get; set; }
+
+ ///
+ /// 预加载游戏
+ ///
+ public virtual DbSet T_Game_Preload { get; set; }
+
+ ///
+ /// 游戏设置配置
+ ///
+ public virtual DbSet T_Game_Setting { get; set; }
+
+ ///
+ /// 游戏标签
+ ///
+ public virtual DbSet T_Game_Tags { get; set; }
+
+ ///
+ /// 游戏类型
+ ///
+ public virtual DbSet T_Game_Types { get; set; }
+
+ ///
+ /// 用户分享游戏
+ ///
+ public virtual DbSet T_Game_UserShare { get; set; }
+
+ protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
+ => optionsBuilder.UseSqlServer("Server=192.168.1.17;Database=CloudGamingGame;User Id=sa;Password=Dbt@com@123;TrustServerCertificate=true;");
+
+ protected override void OnModelCreating(ModelBuilder modelBuilder)
+ {
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_T_CGAME_DIFFICULTYS");
+
+ entity.ToTable(tb => tb.HasComment("难度列表"));
+
+ entity.Property(e => e.CreatTime).HasColumnType("datetime");
+ entity.Property(e => e.Desc)
+ .HasMaxLength(50)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.DiffcultyName)
+ .HasMaxLength(50)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.UpdateTime).HasColumnType("datetime");
+
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_T_UI_GAMECONFIG");
+
+ entity.ToTable(tb => tb.HasComment("游戏中配置"));
+
+ entity.Property(e => e.BuyPopId)
+ .HasMaxLength(50)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.Desc)
+ .HasMaxLength(50)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.UpdateTime).HasColumnType("datetime");
+ entity.Property(e => e.VipBuyPopId)
+ .HasMaxLength(50)
+ .UseCollation("Chinese_PRC_CI_AS");
+
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_T_CGAME_CHILDLIST");
+
+ entity.ToTable(tb => tb.HasComment("游戏多选保存1 游戏类型 2 游戏标签 3 游戏心得4 游戏介绍 5 游戏操作心得"));
+
+ entity.Property(e => e.Desc)
+ .HasMaxLength(100)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.GameId)
+ .HasMaxLength(100)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.OrderId).HasComment("排序Id");
+ entity.Property(e => e.UpdateTime).HasColumnType("datetime");
+
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_T_CGAME_CHILDTYPES");
+
+ entity.ToTable(tb => tb.HasComment("游戏多选保存1 游戏类型2 游戏标签3 游戏心得 4 游戏介绍5 游戏操作心得"));
+
+ entity.Property(e => e.ChildIdName)
+ .HasMaxLength(50)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.Desc)
+ .HasMaxLength(50)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.UpdateTime).HasColumnType("datetime");
+
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_T_CGAME_DESKTOPCONFIG");
+
+ entity.ToTable(tb => tb.HasComment("游戏桌面配置"));
+
+ entity.Property(e => e.Id).HasComment("主键,唯一标识");
+ entity.Property(e => e.BackGroundImage).HasComment("背景图片");
+ entity.Property(e => e.CreateTime)
+ .HasComment("创建时间")
+ .HasColumnType("datetime");
+ entity.Property(e => e.CreateUserName)
+ .HasMaxLength(100)
+ .HasComment("创建人")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.GameId)
+ .HasMaxLength(100)
+ .HasComment("游戏ID")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.GameName)
+ .HasMaxLength(100)
+ .HasComment("游戏名称")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.RestartImage).HasComment("重新启动图片");
+ entity.Property(e => e.RestartImageStyleLeft)
+ .HasMaxLength(20)
+ .HasComment("重新启动图片Left")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.RestartImageStyleTop)
+ .HasMaxLength(20)
+ .HasComment("重新启动图片Top")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.StartArgs)
+ .HasMaxLength(100)
+ .HasComment("启动参数")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.StartPath)
+ .HasMaxLength(200)
+ .HasComment("启动路径")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.SteamImage).HasComment("Steam图片");
+ entity.Property(e => e.SteamImageStyleLeft)
+ .HasMaxLength(20)
+ .HasComment("Steam图片样式")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.SteamImageStyleTop)
+ .HasMaxLength(20)
+ .HasComment("Steam图片样式")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.StopImage).HasComment("断开连接图片");
+ entity.Property(e => e.StopImageStyleLeft)
+ .HasMaxLength(100)
+ .HasComment("断开连接图片Left")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.StopImageStyleTop)
+ .HasMaxLength(100)
+ .HasComment("断开连接图片Top")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.UpdateTime)
+ .HasComment("修改时间")
+ .HasColumnType("datetime");
+ entity.Property(e => e.UpdateUserName)
+ .HasMaxLength(100)
+ .HasComment("创建时间")
+ .UseCollation("Chinese_PRC_CI_AS");
+
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_T_CGAME_DEVELOPERCOMPANYS");
+
+ entity.ToTable(tb => tb.HasComment("游戏开发商公司"));
+
+ entity.Property(e => e.CompanyName)
+ .HasMaxLength(50)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.CreatTime).HasColumnType("datetime");
+ entity.Property(e => e.Desc)
+ .HasMaxLength(50)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.UpdateTime).HasColumnType("datetime");
+
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.ID).HasName("PK_T_CGAME_DEVELOPERS");
+
+ entity.ToTable(tb => tb.HasComment("开发商"));
+
+ entity.Property(e => e.CreatTime).HasColumnType("datetime");
+ entity.Property(e => e.Desc)
+ .HasMaxLength(50)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.DeveloperName)
+ .HasMaxLength(50)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.UpdateTime).HasColumnType("datetime");
+
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_T_CGAME_ISSUERS");
+
+ entity.ToTable(tb => tb.HasComment("发行方信息"));
+
+ entity.Property(e => e.CreatTime).HasColumnType("datetime");
+ entity.Property(e => e.Desc)
+ .HasMaxLength(50)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.IssuerName)
+ .HasMaxLength(50)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.UpdateTime).HasColumnType("datetime");
+
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.ID).HasName("PK_T_CGAME_LIST");
+
+ entity.ToTable(tb => tb.HasComment("游戏列表"));
+
+ entity.Property(e => e.CPCompany)
+ .HasMaxLength(50)
+ .HasDefaultValue("")
+ .HasComment("配对合作方公司")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.CPId)
+ .HasMaxLength(50)
+ .HasDefaultValue("")
+ .HasComment("配对id(用来放置合作游戏方游戏id,如方块科技之类的)")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.CPIsFree).HasComment("配对第三方游戏是否免费0:免费,1:收费");
+ entity.Property(e => e.DCompanyId).HasComment("CP开发公司");
+ entity.Property(e => e.Desc)
+ .HasMaxLength(100)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.DeveloperId).HasComment("游戏开发方");
+ entity.Property(e => e.GameCloudId)
+ .HasMaxLength(50)
+ .HasComment("CP游戏Id")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.GameId)
+ .HasMaxLength(100)
+ .HasComment("我们自己的游戏Id")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.GameIntroduce)
+ .HasComment("游戏介绍")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.GameIsAdapter).HasComment("游戏是否适配");
+ entity.Property(e => e.GameIsCrack).HasComment("游戏是否破解");
+ entity.Property(e => e.GameIsDevelopers).HasComment("游戏是否开发");
+ entity.Property(e => e.GameIsEditionMouse).HasComment("是否隐藏鼠标");
+ entity.Property(e => e.GameIsEditionNumber)
+ .HasDefaultValue(false)
+ .HasComment("是否有版号");
+ entity.Property(e => e.GameIsVersion).HasComment("游戏是否有版权");
+ entity.Property(e => e.GameIssuerId)
+ .HasMaxLength(100)
+ .HasComment("游戏发行方")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.GameName)
+ .HasMaxLength(100)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.GameRecommend)
+ .HasMaxLength(1000)
+ .HasComment("游戏推荐")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.GameSize)
+ .HasMaxLength(100)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.GameVersionDesc)
+ .HasMaxLength(100)
+ .HasComment("游戏版本详情")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.GameVersionNum)
+ .HasMaxLength(100)
+ .HasComment("游戏版本号")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.ScreenOrientation).HasComment("屏幕方向:0-横屏 1-竖屏");
+ entity.Property(e => e.ServerPattern)
+ .HasDefaultValue(0)
+ .HasComment("服务器模式:0容器,1云桌面,3海马云");
+ entity.Property(e => e.SteamId)
+ .HasMaxLength(30)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.UpdateTime).HasColumnType("datetime");
+
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_T_CGAME_OPERATIONMODES");
+
+ entity.ToTable(tb => tb.HasComment(" 游戏操作类型"));
+
+ entity.Property(e => e.CreatTime).HasColumnType("datetime");
+ entity.Property(e => e.Desc)
+ .HasMaxLength(50)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.Name)
+ .HasMaxLength(50)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.UpdateTime).HasColumnType("datetime");
+
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.ToTable(tb => tb.HasComment("预加载游戏"));
+
+ entity.Property(e => e.Id).HasComment("自增");
+ entity.Property(e => e.CreateTime)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("创建时间")
+ .HasColumnType("datetime");
+ entity.Property(e => e.GameId)
+ .HasMaxLength(50)
+ .HasDefaultValue("")
+ .HasComment("游戏Id")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.PreloadSum).HasComment("预加载数量");
+ entity.Property(e => e.UpdateTime)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("修改时间")
+ .HasColumnType("datetime");
+
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_T_GAME_SETTING");
+
+ entity.ToTable(tb => tb.HasComment("游戏设置配置"));
+
+ entity.Property(e => e.CreateTime).HasColumnType("datetime");
+ entity.Property(e => e.Desc)
+ .HasMaxLength(100)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.IsOnline).HasComment("是否显示");
+ entity.Property(e => e.Name)
+ .HasMaxLength(100)
+ .HasComment("设置名字")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.OrderId).HasComment("设置排序");
+ entity.Property(e => e.SettingId).HasComment("设置Id");
+ entity.Property(e => e.UpdateTime).HasColumnType("datetime");
+
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_T_CGAME_TAGS");
+
+ entity.ToTable(tb => tb.HasComment(" 游戏标签"));
+
+ entity.Property(e => e.CreatTime).HasColumnType("datetime");
+ entity.Property(e => e.Desc)
+ .HasMaxLength(50)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.TagName)
+ .HasMaxLength(50)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.UpdateTime).HasColumnType("datetime");
+
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_T_CGAME_TYPES");
+
+ entity.ToTable(tb => tb.HasComment("游戏类型"));
+
+ entity.Property(e => e.CreatTime).HasColumnType("datetime");
+ entity.Property(e => e.TypeDetails)
+ .HasMaxLength(50)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.TypeName)
+ .HasMaxLength(50)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.TypeNameEn)
+ .HasMaxLength(100)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.UpdateTime).HasColumnType("datetime");
+
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ 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("创建时间")
+ .HasColumnType("datetime");
+ entity.Property(e => e.Explain)
+ .HasMaxLength(500)
+ .HasDefaultValue("")
+ .HasComment("说明")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.GameId)
+ .HasMaxLength(50)
+ .HasDefaultValue("")
+ .HasComment("游戏Id")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.GameName)
+ .HasMaxLength(50)
+ .HasDefaultValue("‘’")
+ .HasComment("游戏名称")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.NickName)
+ .HasMaxLength(50)
+ .HasDefaultValue("")
+ .HasComment("用户昵称")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.UserHeadPortrait).HasComment("用户头像");
+ entity.Property(e => e.UserHeadPortraitFrame).HasComment("用户头像框");
+
+ });
+
+ OnModelCreatingPartial(modelBuilder);
+ }
+
+ partial void OnModelCreatingPartial(ModelBuilder modelBuilder);
+}
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
new file mode 100644
index 0000000..74e8226
--- /dev/null
+++ b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_CGame_Difficultys.cs
@@ -0,0 +1,23 @@
+using System;
+
+namespace CloudGaming.GameModel.Db.Db_Game;
+
+///
+/// 难度列表
+///
+public partial class T_CGame_Difficultys: MultiTenantEntity
+{
+ public T_CGame_Difficultys() { }
+
+ public virtual int Id { get; set; }
+
+ public virtual int DifficultyID { get; set; }
+
+ public virtual string? DiffcultyName { get; set; }
+
+ public virtual string? Desc { get; set; }
+
+ public virtual DateTime? CreatTime { get; set; }
+
+ public virtual DateTime? UpdateTime { get; set; }
+}
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
new file mode 100644
index 0000000..bd041f4
--- /dev/null
+++ b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_GameConfig.cs
@@ -0,0 +1,37 @@
+using System;
+
+namespace CloudGaming.GameModel.Db.Db_Game;
+
+///
+/// 游戏中配置
+///
+public partial class T_GameConfig: MultiTenantEntity
+{
+ public T_GameConfig() { }
+
+ public virtual int Id { get; set; }
+
+ public virtual int? ConfigType { get; set; }
+
+ public virtual int? ConfigId { get; set; }
+
+ public virtual int? BuyBgImageId { get; set; }
+
+ public virtual int? BuyBgUIId { get; set; }
+
+ public virtual int? BuySubmitImageId { get; set; }
+
+ public virtual int? BuySubmitUIId { get; set; }
+
+ public virtual int? BuyBackImageId { get; set; }
+
+ public virtual int? BuyBackUIId { get; set; }
+
+ public virtual string? VipBuyPopId { get; set; }
+
+ public virtual string? BuyPopId { get; set; }
+
+ public virtual DateTime? UpdateTime { get; set; }
+
+ public virtual string? Desc { get; set; }
+}
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
new file mode 100644
index 0000000..7d0c9a1
--- /dev/null
+++ b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_ChildList.cs
@@ -0,0 +1,30 @@
+using System;
+
+namespace CloudGaming.GameModel.Db.Db_Game;
+
+///
+/// 游戏多选保存1 游戏类型 2 游戏标签 3 游戏心得4 游戏介绍 5 游戏操作心得
+///
+public partial class T_Game_ChildList: MultiTenantEntity
+{
+ public T_Game_ChildList() { }
+
+ public virtual int Id { get; set; }
+
+ public virtual string? GameId { get; set; }
+
+ public virtual int? ChildType { get; set; }
+
+ public virtual int? ChildId { get; set; }
+
+ public virtual DateTime? UpdateTime { get; set; }
+
+ public virtual string? Desc { get; set; }
+
+ public virtual int Odds { get; set; }
+
+ ///
+ /// 排序Id
+ ///
+ public virtual int OrderId { get; set; }
+}
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
new file mode 100644
index 0000000..25ca8ce
--- /dev/null
+++ b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_ChildTypes.cs
@@ -0,0 +1,21 @@
+using System;
+
+namespace CloudGaming.GameModel.Db.Db_Game;
+
+///
+/// 游戏多选保存1 游戏类型2 游戏标签3 游戏心得 4 游戏介绍5 游戏操作心得
+///
+public partial class T_Game_ChildTypes: MultiTenantEntity
+{
+ public T_Game_ChildTypes() { }
+
+ public virtual int Id { get; set; }
+
+ public virtual int? ChildType { get; set; }
+
+ public virtual string? ChildIdName { get; set; }
+
+ public virtual DateTime? UpdateTime { get; set; }
+
+ public virtual string? Desc { get; set; }
+}
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
new file mode 100644
index 0000000..13c8b09
--- /dev/null
+++ b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_DesktopConfig.cs
@@ -0,0 +1,106 @@
+using System;
+
+namespace CloudGaming.GameModel.Db.Db_Game;
+
+///
+/// 游戏桌面配置
+///
+public partial class T_Game_DesktopConfig: MultiTenantEntity
+{
+ public T_Game_DesktopConfig() { }
+
+ ///
+ /// 主键,唯一标识
+ ///
+ public virtual int Id { get; set; }
+
+ ///
+ /// 游戏ID
+ ///
+ public virtual string GameId { get; set; } = null!;
+
+ ///
+ /// 游戏名称
+ ///
+ public virtual string GameName { get; set; } = null!;
+
+ ///
+ /// 背景图片
+ ///
+ public virtual int? BackGroundImage { get; set; }
+
+ ///
+ /// 重新启动图片
+ ///
+ public virtual int? RestartImage { get; set; }
+
+ ///
+ /// 重新启动图片Top
+ ///
+ public virtual string? RestartImageStyleTop { get; set; }
+
+ ///
+ /// 重新启动图片Left
+ ///
+ public virtual string? RestartImageStyleLeft { get; set; }
+
+ ///
+ /// 断开连接图片
+ ///
+ public virtual int? StopImage { get; set; }
+
+ ///
+ /// 断开连接图片Top
+ ///
+ public virtual string? StopImageStyleTop { get; set; }
+
+ ///
+ /// 断开连接图片Left
+ ///
+ public virtual string? StopImageStyleLeft { get; set; }
+
+ ///
+ /// Steam图片
+ ///
+ public virtual int? SteamImage { get; set; }
+
+ ///
+ /// Steam图片样式
+ ///
+ public virtual string? SteamImageStyleTop { get; set; }
+
+ ///
+ /// Steam图片样式
+ ///
+ public virtual string? SteamImageStyleLeft { get; set; }
+
+ ///
+ /// 启动路径
+ ///
+ public virtual string? StartPath { get; set; }
+
+ ///
+ /// 启动参数
+ ///
+ public virtual string? StartArgs { get; set; }
+
+ ///
+ /// 创建时间
+ ///
+ public virtual DateTime? CreateTime { get; set; }
+
+ ///
+ /// 修改时间
+ ///
+ public virtual DateTime? UpdateTime { get; set; }
+
+ ///
+ /// 创建人
+ ///
+ public virtual string? CreateUserName { get; set; }
+
+ ///
+ /// 创建时间
+ ///
+ public virtual string? UpdateUserName { get; set; }
+}
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
new file mode 100644
index 0000000..e1c0bc7
--- /dev/null
+++ b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_DeveloperCompanys.cs
@@ -0,0 +1,23 @@
+using System;
+
+namespace CloudGaming.GameModel.Db.Db_Game;
+
+///
+/// 游戏开发商公司
+///
+public partial class T_Game_DeveloperCompanys: MultiTenantEntity
+{
+ public T_Game_DeveloperCompanys() { }
+
+ public virtual int Id { get; set; }
+
+ public virtual int? CompanyId { get; set; }
+
+ public virtual string? CompanyName { get; set; }
+
+ public virtual DateTime? UpdateTime { get; set; }
+
+ public virtual DateTime? CreatTime { get; set; }
+
+ public virtual string? Desc { get; set; }
+}
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
new file mode 100644
index 0000000..7525cdd
--- /dev/null
+++ b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_Developers.cs
@@ -0,0 +1,23 @@
+using System;
+
+namespace CloudGaming.GameModel.Db.Db_Game;
+
+///
+/// 开发商
+///
+public partial class T_Game_Developers: MultiTenantEntity
+{
+ public T_Game_Developers() { }
+
+ public virtual int ID { get; set; }
+
+ public virtual int DeveloperId { get; set; }
+
+ public virtual string? DeveloperName { get; set; }
+
+ public virtual string? Desc { get; set; }
+
+ public virtual DateTime? CreatTime { get; set; }
+
+ public virtual DateTime? UpdateTime { get; set; }
+}
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
new file mode 100644
index 0000000..6a54753
--- /dev/null
+++ b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_Issuers.cs
@@ -0,0 +1,23 @@
+using System;
+
+namespace CloudGaming.GameModel.Db.Db_Game;
+
+///
+/// 发行方信息
+///
+public partial class T_Game_Issuers: MultiTenantEntity
+{
+ public T_Game_Issuers() { }
+
+ public virtual int Id { get; set; }
+
+ public virtual int IssuerId { get; set; }
+
+ public virtual string? IssuerName { get; set; }
+
+ public virtual string? Desc { get; set; }
+
+ public virtual DateTime? CreatTime { get; set; }
+
+ public virtual DateTime? UpdateTime { get; set; }
+}
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
new file mode 100644
index 0000000..dd4ba58
--- /dev/null
+++ b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_List.cs
@@ -0,0 +1,131 @@
+using System;
+
+namespace CloudGaming.GameModel.Db.Db_Game;
+
+///
+/// 游戏列表
+///
+public partial class T_Game_List: MultiTenantEntity
+{
+ public T_Game_List() { }
+
+ public virtual int ID { get; set; }
+
+ ///
+ /// 我们自己的游戏Id
+ ///
+ public virtual string GameId { get; set; } = null!;
+
+ public virtual string? GameName { get; set; }
+
+ public virtual int? GameDifficultyId { get; set; }
+
+ public virtual int? GamePeopleNum { get; set; }
+
+ public virtual bool? GameIsSaveFile { get; set; }
+
+ ///
+ /// 游戏是否破解
+ ///
+ public virtual bool? GameIsCrack { get; set; }
+
+ ///
+ /// 游戏是否适配
+ ///
+ public virtual bool? GameIsAdapter { get; set; }
+
+ ///
+ /// 游戏是否有版权
+ ///
+ public virtual bool? GameIsVersion { get; set; }
+
+ ///
+ /// 游戏版本号
+ ///
+ public virtual string? GameVersionNum { get; set; }
+
+ ///
+ /// 游戏版本详情
+ ///
+ public virtual string? GameVersionDesc { get; set; }
+
+ ///
+ /// 游戏发行方
+ ///
+ public virtual string? GameIssuerId { get; set; }
+
+ ///
+ /// 游戏是否开发
+ ///
+ public virtual bool? GameIsDevelopers { get; set; }
+
+ ///
+ /// CP游戏Id
+ ///
+ public virtual string? GameCloudId { get; set; }
+
+ ///
+ /// CP开发公司
+ ///
+ public virtual int? DCompanyId { get; set; }
+
+ ///
+ /// 游戏开发方
+ ///
+ public virtual int? DeveloperId { get; set; }
+
+ public virtual int? OrderId { get; set; }
+
+ public virtual DateTime? UpdateTime { get; set; }
+
+ public virtual string? Desc { get; set; }
+
+ ///
+ /// 游戏介绍
+ ///
+ public virtual string? GameIntroduce { get; set; }
+
+ public virtual string? GameSize { get; set; }
+
+ ///
+ /// 配对id(用来放置合作游戏方游戏id,如方块科技之类的)
+ ///
+ public virtual string CPId { get; set; } = null!;
+
+ ///
+ /// 配对合作方公司
+ ///
+ public virtual string CPCompany { get; set; } = null!;
+
+ ///
+ /// 配对第三方游戏是否免费0:免费,1:收费
+ ///
+ public virtual int CPIsFree { get; set; }
+
+ ///
+ /// 屏幕方向:0-横屏 1-竖屏
+ ///
+ public virtual int ScreenOrientation { get; set; }
+
+ ///
+ /// 服务器模式:0容器,1云桌面,3海马云
+ ///
+ public virtual int? ServerPattern { get; set; }
+
+ ///
+ /// 是否有版号
+ ///
+ public virtual bool? GameIsEditionNumber { get; set; }
+
+ ///
+ /// 游戏推荐
+ ///
+ public virtual string? GameRecommend { get; set; }
+
+ ///
+ /// 是否隐藏鼠标
+ ///
+ public virtual bool? GameIsEditionMouse { get; set; }
+
+ public virtual string? SteamId { get; set; }
+}
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
new file mode 100644
index 0000000..a66be72
--- /dev/null
+++ b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_OperationModes.cs
@@ -0,0 +1,23 @@
+using System;
+
+namespace CloudGaming.GameModel.Db.Db_Game;
+
+///
+/// 游戏操作类型
+///
+public partial class T_Game_OperationModes: MultiTenantEntity
+{
+ public T_Game_OperationModes() { }
+
+ public virtual int Id { get; set; }
+
+ public virtual int OperationModeId { get; set; }
+
+ public virtual string Name { get; set; } = null!;
+
+ public virtual string? Desc { get; set; }
+
+ public virtual DateTime? CreatTime { get; set; }
+
+ public virtual DateTime? UpdateTime { get; set; }
+}
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
new file mode 100644
index 0000000..8859ecb
--- /dev/null
+++ b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_Preload.cs
@@ -0,0 +1,36 @@
+using System;
+
+namespace CloudGaming.GameModel.Db.Db_Game;
+
+///
+/// 预加载游戏
+///
+public partial class T_Game_Preload: MultiTenantEntity
+{
+ public T_Game_Preload() { }
+
+ ///
+ /// 自增
+ ///
+ public virtual int Id { get; set; }
+
+ ///
+ /// 游戏Id
+ ///
+ public virtual string GameId { get; set; } = null!;
+
+ ///
+ /// 预加载数量
+ ///
+ public virtual int PreloadSum { get; set; }
+
+ ///
+ /// 创建时间
+ ///
+ public virtual DateTime CreateTime { get; set; }
+
+ ///
+ /// 修改时间
+ ///
+ public virtual DateTime UpdateTime { get; set; }
+}
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
new file mode 100644
index 0000000..ae4ab30
--- /dev/null
+++ b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_Setting.cs
@@ -0,0 +1,45 @@
+using System;
+
+namespace CloudGaming.GameModel.Db.Db_Game;
+
+///
+/// 游戏设置配置
+///
+public partial class T_Game_Setting: MultiTenantEntity
+{
+ public T_Game_Setting() { }
+
+ public virtual int Id { get; set; }
+
+ ///
+ /// 设置Id
+ ///
+ public virtual int? SettingId { get; set; }
+
+ ///
+ /// 设置名字
+ ///
+ public virtual string? Name { get; set; }
+
+ ///
+ /// 设置排序
+ ///
+ public virtual int? OrderId { get; set; }
+
+ ///
+ /// 是否显示
+ ///
+ public virtual bool? IsOnline { get; set; }
+
+ public virtual DateTime? CreateTime { get; set; }
+
+ public virtual DateTime? UpdateTime { get; set; }
+
+ public virtual string? Desc { get; set; }
+
+ public virtual bool? IsOptional { get; set; }
+
+ public virtual int? ImageId { get; set; }
+
+ public virtual int? Grade { get; set; }
+}
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
new file mode 100644
index 0000000..5633d68
--- /dev/null
+++ b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_Tags.cs
@@ -0,0 +1,23 @@
+using System;
+
+namespace CloudGaming.GameModel.Db.Db_Game;
+
+///
+/// 游戏标签
+///
+public partial class T_Game_Tags: MultiTenantEntity
+{
+ public T_Game_Tags() { }
+
+ public virtual int Id { get; set; }
+
+ public virtual int TagID { get; set; }
+
+ public virtual string TagName { get; set; } = null!;
+
+ public virtual string? Desc { get; set; }
+
+ public virtual DateTime? CreatTime { get; set; }
+
+ public virtual DateTime? UpdateTime { get; set; }
+}
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
new file mode 100644
index 0000000..39d56b4
--- /dev/null
+++ b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_Types.cs
@@ -0,0 +1,31 @@
+using System;
+
+namespace CloudGaming.GameModel.Db.Db_Game;
+
+///
+/// 游戏类型
+///
+public partial class T_Game_Types: MultiTenantEntity
+{
+ public T_Game_Types() { }
+
+ public virtual int Id { get; set; }
+
+ public virtual int TypeId { get; set; }
+
+ public virtual string TypeName { get; set; } = null!;
+
+ public virtual string? TypeDetails { get; set; }
+
+ public virtual DateTime? CreatTime { get; set; }
+
+ public virtual DateTime? UpdateTime { get; set; }
+
+ public virtual int? Type { get; set; }
+
+ public virtual int? OrderId { get; set; }
+
+ public virtual bool? IsOnline { get; set; }
+
+ public virtual string? TypeNameEn { get; set; }
+}
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
new file mode 100644
index 0000000..7980413
--- /dev/null
+++ b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_UserShare.cs
@@ -0,0 +1,56 @@
+using System;
+
+namespace CloudGaming.GameModel.Db.Db_Game;
+
+///
+/// 用户分享游戏
+///
+public partial class T_Game_UserShare: MultiTenantEntity
+{
+ public T_Game_UserShare() { }
+
+ ///
+ /// 自增
+ ///
+ public virtual int Id { get; set; }
+
+ ///
+ /// 用户昵称
+ ///
+ public virtual string NickName { get; set; } = null!;
+
+ ///
+ /// 用户头像
+ ///
+ public virtual int UserHeadPortrait { get; set; }
+
+ ///
+ /// 用户头像框
+ ///
+ public virtual int UserHeadPortraitFrame { get; set; }
+
+ ///
+ /// 游戏Id
+ ///
+ public virtual string GameId { get; set; } = null!;
+
+ ///
+ /// 游戏名称
+ ///
+ public virtual string GameName { get; set; } = null!;
+
+ ///
+ /// 说明
+ ///
+ public virtual string Explain { get; set; } = null!;
+
+ ///
+ /// 创建时间
+ ///
+ public virtual DateTime CreateTime { get; set; }
+
+ ///
+ /// AppId配置
+ ///
+ public virtual int AppId { get; set; }
+}
diff --git a/src/CloudGaming/Model/CloudGaming.GameModel/Db/efcore-gen.md b/src/CloudGaming/Model/CloudGaming.GameModel/Db/efcore-gen.md
new file mode 100644
index 0000000..f93764b
--- /dev/null
+++ b/src/CloudGaming/Model/CloudGaming.GameModel/Db/efcore-gen.md
@@ -0,0 +1,8 @@
+
+##在API项目里面执行,使用连接字符串名称,生成代码到model项目
+```sh
+--game
+dotnet ef dbcontext scaffold "Server=192.168.1.17;Database=CloudGamingGame;User Id=sa;Password=Dbt@com@123;TrustServerCertificate=true;" Microsoft.EntityFrameworkCore.SqlServer -o Db/Db_Game/ --use-database-names --no-pluralize --force
+--Ext
+dotnet ef dbcontext scaffold "Server=192.168.1.17;Database=CloudGamingCBT;User Id=sa;Password=Dbt@com@123;TrustServerCertificate=true;" Microsoft.EntityFrameworkCore.SqlServer -o Db/Db_Ext/ --use-database-names --no-pluralize --force
+```
\ No newline at end of file
diff --git a/src/CloudGaming/Model/CloudGaming.GameModel/GlobalUsings.cs b/src/CloudGaming/Model/CloudGaming.GameModel/GlobalUsings.cs
new file mode 100644
index 0000000..0a7e25b
--- /dev/null
+++ b/src/CloudGaming/Model/CloudGaming.GameModel/GlobalUsings.cs
@@ -0,0 +1,2 @@
+global using HuanMeng.DotNetCore.MultiTenant;
+global using HuanMeng.DotNetCore.MultiTenant.Contract;
diff --git a/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/CloudGamingPhoneContext.cs b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/CloudGamingPhoneContext.cs
new file mode 100644
index 0000000..8a256e8
--- /dev/null
+++ b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/CloudGamingPhoneContext.cs
@@ -0,0 +1,1141 @@
+using System;
+using System.Collections.Generic;
+using Microsoft.EntityFrameworkCore;
+
+namespace CloudGaming.Model.DbSqlServer.Db_Phone;
+
+///
+/// 云游戏实体类
+///
+public partial class CloudGamingPhoneContext : MultiTenantDbContext//DbContext
+{
+ public CloudGamingPhoneContext() : base(null)
+ {
+ }
+
+ public CloudGamingPhoneContext(DbContextOptions options)
+ : base(null, options)
+ {
+ }
+
+ ///
+ ///
+ ///
+ ///
+ public CloudGamingPhoneContext(ITenantInfo tenantInfo) : base(tenantInfo)
+ {
+
+ }
+
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ public CloudGamingPhoneContext(ITenantInfo tenantInfo, DbContextOptions options) : base(tenantInfo, options)
+ {
+ }
+
+
+ ///
+ /// 用户头像框
+ ///
+ public virtual DbSet T_AvatarFrame { get; set; }
+
+ ///
+ /// Epg分组配置表
+ ///
+ public virtual DbSet T_Epg_CategoryCfg { get; set; }
+
+ ///
+ /// Epg分组配置表
+ ///
+ public virtual DbSet T_Epg_CategoryCfg_Export { get; set; }
+
+ ///
+ /// Epg配置表
+ ///
+ public virtual DbSet T_Epg_Cfg { get; set; }
+
+ ///
+ /// Epg配置表
+ ///
+ public virtual DbSet T_Epg_Cfg_Export { get; set; }
+
+ ///
+ /// 悬浮球配置
+ ///
+ public virtual DbSet T_FloatBall_Cfg { get; set; }
+
+ ///
+ /// 游戏配置
+ ///
+ public virtual DbSet T_GameCBT { get; set; }
+
+ ///
+ /// 游戏虚拟手柄,虚拟键盘设置
+ ///
+ public virtual DbSet T_GameInputSetting { get; set; }
+
+ ///
+ /// 游戏按键方案配置表
+ ///
+ public virtual DbSet T_GameKeyPlan_CBT { get; set; }
+
+ ///
+ /// 按键表
+ ///
+ public virtual DbSet T_GamePressKey { get; set; }
+
+ ///
+ /// 游戏按键方案
+ ///
+ public virtual DbSet T_GamePressKeyPlan { get; set; }
+
+ ///
+ /// 游戏展示
+ ///
+ public virtual DbSet T_GameShow { get; set; }
+
+ ///
+ /// 游戏减价配置表
+ ///
+ public virtual DbSet T_Game_DiscountCfg { get; set; }
+
+ ///
+ /// 虚拟键盘配置表
+ ///
+ public virtual DbSet T_KeyboardSetting { get; set; }
+
+ ///
+ /// 方案按键配置表
+ ///
+ public virtual DbSet T_PlanKey_CBT { get; set; }
+
+ ///
+ /// 通用弹框配置
+ ///
+ public virtual DbSet T_Popup { get; set; }
+
+ ///
+ /// 弹窗按钮
+ ///
+ public virtual DbSet T_PopupBtn { get; set; }
+
+ ///
+ /// 七日签到奖励配置表
+ ///
+ public virtual DbSet T_SevenDaySignIn_AwardCBT { get; set; }
+
+ ///
+ /// 签到类型
+ ///
+ public virtual DbSet T_SignTypes { get; set; }
+
+ ///
+ /// 系统公告
+ ///
+ public virtual DbSet T_SysMessage { get; set; }
+
+ ///
+ /// 位置大小类型列表
+ ///
+ public virtual DbSet T_UITypes { get; set; }
+
+ ///
+ /// UI集合
+ ///
+ public virtual DbSet T_UIs { get; set; }
+
+ ///
+ /// 视频列表
+ ///
+ public virtual DbSet T_Videos { get; set; }
+
+ protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
+ => optionsBuilder.UseSqlServer("Server=192.168.1.17;Database=CloudGamingPhone;User Id=sa;Password=Dbt@com@123;TrustServerCertificate=true;");
+
+ protected override void OnModelCreating(ModelBuilder modelBuilder)
+ {
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_T_AVATARFRAME");
+
+ entity.ToTable(tb => tb.HasComment("用户头像框"));
+
+
+ entity.Property(e => e.AvatarId)
+ .HasMaxLength(50)
+ .HasComment("头像框Id")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.CreateTime).HasColumnType("datetime");
+ entity.Property(e => e.Desc)
+ .HasMaxLength(50)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.ImageId2).HasComment("头像框备注用图");
+ entity.Property(e => e.Name)
+ .HasMaxLength(50)
+ .HasComment("头像框名称")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.NameColor)
+ .HasMaxLength(7)
+ .HasDefaultValue("222222")
+ .HasComment("头像框名称色号")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.UpdateTime).HasColumnType("datetime");
+ //添加全局筛选器
+ if (this.TenantInfo != null)
+ {
+ entity.HasQueryFilter(it => it.TenantId == this.TenantInfo.TenantId);
+ }
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.EpgCategory).HasName("PK_T_EPG_CATEGORYCFG");
+
+ entity.ToTable(tb => tb.HasComment("Epg分组配置表"));
+
+ entity.Property(e => e.EpgCategory).HasComment("epg分组Id");
+
+ entity.Property(e => e.EpgParentCategory).HasComment("epg父组Id, 0无");
+ entity.Property(e => e.Extend1)
+ .HasMaxLength(200)
+ .IsUnicode(false)
+ .HasComment("扩展字段1")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.Extend2)
+ .HasMaxLength(200)
+ .IsUnicode(false)
+ .HasComment("扩展字段2")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.Extend3)
+ .HasMaxLength(200)
+ .IsUnicode(false)
+ .HasComment("扩展字段3")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.IdName)
+ .HasMaxLength(50)
+ .IsUnicode(false)
+ .HasComment("代码标识")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.ImageId).HasComment("图片-预留");
+ entity.Property(e => e.ImageId2).HasComment("图片-预留");
+ entity.Property(e => e.IsNotCheckingShow)
+ .HasDefaultValue(true)
+ .HasComment("审核模式下不显示");
+ entity.Property(e => e.IsOnline).HasComment("是否启用");
+ entity.Property(e => e.IsOnlineQuickStartPopUp).HasComment("联机游戏快速启动弹窗");
+ entity.Property(e => e.IsQuickStartPopUp).HasComment("快速启动弹窗");
+ entity.Property(e => e.IsStandardClose).HasComment("非审核(正常)模式是否关闭");
+ entity.Property(e => e.Name)
+ .HasMaxLength(50)
+ .HasComment("分组名称")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.OnlineBossId)
+ .HasMaxLength(50)
+ .IsUnicode(false)
+ .HasComment("上线渠道,0不限制")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.OnlinePlatform)
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasComment("上线平台")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.OrderId).HasComment("排序-正序");
+ entity.Property(e => e.ShowNum_Index).HasComment("首页展示数量");
+ //添加全局筛选器
+ if (this.TenantInfo != null)
+ {
+ entity.HasQueryFilter(it => it.TenantId == this.TenantInfo.TenantId);
+ }
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.EpgCategory).HasName("PK_T_EPG_CATEGORYCFG_EXP");
+
+ entity.ToTable(tb => tb.HasComment("Epg分组配置表"));
+
+ entity.Property(e => e.EpgCategory)
+ .ValueGeneratedNever()
+ .HasComment("epg分组Id");
+ entity.Property(e => e.EpgParentCategory).HasComment("epg父组Id, 0无");
+ entity.Property(e => e.Extend1)
+ .HasMaxLength(200)
+ .IsUnicode(false)
+ .HasComment("扩展字段1")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.Extend2)
+ .HasMaxLength(200)
+ .IsUnicode(false)
+ .HasComment("扩展字段2")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.Extend3)
+ .HasMaxLength(200)
+ .IsUnicode(false)
+ .HasComment("扩展字段3")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.IdName)
+ .HasMaxLength(50)
+ .IsUnicode(false)
+ .HasComment("代码标识")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.ImageId).HasComment("图片-预留");
+ entity.Property(e => e.ImageId2).HasComment("图片-预留");
+ entity.Property(e => e.IsOnline).HasComment("是否启用");
+ entity.Property(e => e.Name)
+ .HasMaxLength(50)
+ .HasComment("分组名称")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.OnlineBossId)
+ .HasMaxLength(50)
+ .IsUnicode(false)
+ .HasComment("上线渠道,0不限制")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.OnlinePlatform)
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasComment("上线平台")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.OrderId).HasComment("排序-正序");
+ entity.Property(e => e.ShowNum_Index).HasComment("首页展示数量");
+ //添加全局筛选器
+ if (this.TenantInfo != null)
+ {
+ entity.HasQueryFilter(it => it.TenantId == this.TenantInfo.TenantId);
+ }
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.EpgId).HasName("PK_T_EPG_CFG");
+
+ entity.ToTable(tb => tb.HasComment("Epg配置表"));
+
+ entity.Property(e => e.EpgId).HasComment("标识");
+ entity.Property(e => e.Continent)
+ .HasMaxLength(200)
+ .HasComment("州")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.CornerIconId).HasComment("角标");
+ entity.Property(e => e.CountryName)
+ .HasMaxLength(200)
+ .HasComment("国家")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.EndEnableTime)
+ .HasComment("结束时间")
+ .HasColumnType("datetime");
+ entity.Property(e => e.EpgCategory).HasComment("epg分组");
+ entity.Property(e => e.Extend1)
+ .HasMaxLength(200)
+ .IsUnicode(false)
+ .HasComment("扩展字段1")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.Extend2)
+ .HasMaxLength(200)
+ .IsUnicode(false)
+ .HasComment("扩展字段2")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.Extend3)
+ .HasMaxLength(200)
+ .IsUnicode(false)
+ .HasComment("扩展字段3")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.IdName)
+ .HasMaxLength(50)
+ .IsUnicode(false)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.ImageId).HasComment("图片");
+ entity.Property(e => e.ImageId2).HasComment("图片2-预留");
+ entity.Property(e => e.ImageId3).HasComment("图片3");
+ entity.Property(e => e.ImageResStyle)
+ .HasMaxLength(50)
+ .IsUnicode(false)
+ .HasComment("使用原始资源图样式n_n")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.IsCheckingClose).HasComment("审核模式是否关闭");
+ entity.Property(e => e.IsOnline).HasComment("是否启用");
+ entity.Property(e => e.IsOnlineQuickStartPopUp).HasComment("联机快速启动");
+ entity.Property(e => e.IsStandardClose).HasComment("非审核(正常)模式是否关闭");
+ entity.Property(e => e.OnlineBossId)
+ .HasMaxLength(50)
+ .IsUnicode(false)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.OnlinePlatform)
+ .HasMaxLength(50)
+ .IsUnicode(false)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.OrderId).HasComment("排序-正序");
+ entity.Property(e => e.ResId)
+ .HasMaxLength(200)
+ .IsUnicode(false)
+ .HasComment("资源Id")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.ResParams)
+ .HasMaxLength(200)
+ .IsUnicode(false)
+ .HasComment("资源参数")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.ResType).HasComment("资源类型");
+ entity.Property(e => e.StartEnableTime)
+ .HasComment("启用时间")
+ .HasColumnType("datetime");
+ entity.Property(e => e.StyleType)
+ .HasMaxLength(50)
+ .IsUnicode(false)
+ .HasComment("展示样式:more")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.Title)
+ .HasMaxLength(50)
+ .HasComment("标题")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.Title2)
+ .HasMaxLength(200)
+ .HasComment("标题2")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.UpdateTime)
+ .HasComment("更新时间")
+ .HasColumnType("datetime");
+ entity.Property(e => e.VideoIdentification)
+ .HasMaxLength(200)
+ .HasComment("视频标识")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.VideoUrl)
+ .HasMaxLength(200)
+ .IsUnicode(false)
+ .HasComment("视频地址")
+ .UseCollation("Chinese_PRC_CI_AS");
+ //添加全局筛选器
+ if (this.TenantInfo != null)
+ {
+ entity.HasQueryFilter(it => it.TenantId == this.TenantInfo.TenantId);
+ }
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.EpgId).HasName("PK_T_EPG_CFG_EXPORT");
+
+ entity.ToTable(tb => tb.HasComment("Epg配置表"));
+
+ entity.Property(e => e.EpgId)
+ .ValueGeneratedNever()
+ .HasComment("标识");
+ entity.Property(e => e.CornerIconId).HasComment("角标");
+ entity.Property(e => e.EpgCategory).HasComment("epg分组");
+ entity.Property(e => e.Extend1)
+ .HasMaxLength(200)
+ .IsUnicode(false)
+ .HasComment("扩展字段1")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.Extend2)
+ .HasMaxLength(200)
+ .IsUnicode(false)
+ .HasComment("扩展字段2")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.Extend3)
+ .HasMaxLength(200)
+ .IsUnicode(false)
+ .HasComment("扩展字段3")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.IdName)
+ .HasMaxLength(50)
+ .IsUnicode(false)
+ .HasComment("代码标识")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.ImageId).HasComment("图片");
+ entity.Property(e => e.ImageId2).HasComment("图片2");
+ entity.Property(e => e.ImageResStyle)
+ .HasMaxLength(50)
+ .IsUnicode(false)
+ .HasComment("使用原始资源图样式n_n")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.IsOnline).HasComment("是否启用");
+ entity.Property(e => e.OnlineBossId)
+ .HasMaxLength(50)
+ .IsUnicode(false)
+ .HasComment("上线渠道,0不限")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.OnlinePlatform)
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasComment("上线平台")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.OrderId).HasComment("排序-正序");
+ entity.Property(e => e.ResId)
+ .HasMaxLength(200)
+ .IsUnicode(false)
+ .HasComment("资源Id")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.ResParams)
+ .HasMaxLength(200)
+ .IsUnicode(false)
+ .HasComment("资源参数")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.ResType).HasComment("资源类型");
+ entity.Property(e => e.SpecialId).HasComment("特殊标志");
+ entity.Property(e => e.StyleType)
+ .HasMaxLength(50)
+ .IsUnicode(false)
+ .HasComment("展示样式:more")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.Title)
+ .HasMaxLength(50)
+ .HasComment("标题")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.Title2)
+ .HasMaxLength(200)
+ .HasComment("标题2")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.UpdateTime)
+ .HasComment("更新时间")
+ .HasColumnType("datetime");
+ entity.Property(e => e.VideoUrl)
+ .HasMaxLength(200)
+ .IsUnicode(false)
+ .HasComment("视频地址")
+ .UseCollation("Chinese_PRC_CI_AS");
+ //添加全局筛选器
+ if (this.TenantInfo != null)
+ {
+ entity.HasQueryFilter(it => it.TenantId == this.TenantInfo.TenantId);
+ }
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_T_FLOATBALL_CFG");
+
+ entity.ToTable(tb => tb.HasComment("悬浮球配置"));
+
+
+ entity.Property(e => e.BossId)
+ .HasMaxLength(50)
+ .HasDefaultValue("")
+ .HasComment("渠道号id")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.HideAfterClick).HasComment("是否点击后隐藏");
+ entity.Property(e => e.ImageId1).HasComment("状态-显示");
+ entity.Property(e => e.ImageId2).HasComment("状态-隐藏");
+ entity.Property(e => e.IsOnline).HasComment("是否启用");
+ entity.Property(e => e.Name)
+ .HasMaxLength(100)
+ .HasComment("名称")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.Pos1).HasComment("坐标x");
+ entity.Property(e => e.Pos2).HasComment("坐标y");
+ entity.Property(e => e.ResId)
+ .HasMaxLength(1000)
+ .IsUnicode(false)
+ .HasComment("资源Id")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.ResType).HasComment("资源类型");
+ entity.Property(e => e.UpdateTime)
+ .HasComment("修改时间")
+ .HasColumnType("datetime");
+ //添加全局筛选器
+ if (this.TenantInfo != null)
+ {
+ entity.HasQueryFilter(it => it.TenantId == this.TenantInfo.TenantId);
+ }
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_T_GAMECBT");
+
+ entity.ToTable(tb => tb.HasComment("游戏配置"));
+
+ entity.Property(e => e.ConsumeDiamondNumHour).HasComment("每小时钻石费用");
+ entity.Property(e => e.ConsumeDiamondNumHourVip).HasComment("每小时VIP钻石费用");
+ entity.Property(e => e.CreateTime).HasColumnType("datetime");
+ entity.Property(e => e.Desc)
+ .HasMaxLength(200)
+ .HasComment("备注")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.FriendlyTips)
+ .HasMaxLength(50)
+ .HasComment("启动提示");
+ entity.Property(e => e.GameBgImgId).HasComment("游戏详情也配置背景");
+ entity.Property(e => e.GameGroup).HasComment("游戏分组:0单机,1steam,2网游");
+ entity.Property(e => e.GameId)
+ .HasMaxLength(100)
+ .HasComment("游戏Id")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.GameImageId).HasComment("游戏Icon");
+ entity.Property(e => e.GameLoadBgImageId).HasComment("游戏加载图");
+ entity.Property(e => e.GameLoadTime).HasComment("Loading时间");
+ entity.Property(e => e.GameName)
+ .HasMaxLength(50)
+ .HasComment("游戏名称")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.ImageIconId).HasComment("游戏icon");
+ entity.Property(e => e.ImageId_Banner).HasComment("顶部图片");
+ entity.Property(e => e.ImageId_JXTJ).HasComment("精选推荐");
+ entity.Property(e => e.ImageId_TJ).HasComment("推荐大图");
+ entity.Property(e => e.ImageId_ZJTC).HasComment("最近推出");
+ entity.Property(e => e.ImageId_ZXTJ).HasComment("尊享推荐");
+ entity.Property(e => e.IsDiscount)
+ .HasDefaultValue(true)
+ .HasComment("是否参与优惠套餐活动(比如包夜卡,周中卡之类的)");
+ entity.Property(e => e.IsLimitToVip).HasComment("VIP专属");
+ entity.Property(e => e.IsOnline).HasComment("是否启用");
+ entity.Property(e => e.IsTest).HasComment("是否测试游戏");
+ entity.Property(e => e.OnlinePlatform)
+ .HasMaxLength(50)
+ .HasDefaultValue("")
+ .HasComment("平台类型,为空全选")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.OrderId).HasComment("排序");
+ entity.Property(e => e.Score)
+ .HasMaxLength(30)
+ .HasComment("评分")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.Title2)
+ .HasMaxLength(200)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.UpdateTime).HasColumnType("datetime");
+ entity.Property(e => e.VideoIdentification)
+ .HasMaxLength(200)
+ .HasComment("视频标识")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.VideoUrl)
+ .HasMaxLength(500)
+ .IsUnicode(false)
+ .HasComment("视频地址")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.VipContinent)
+ .HasMaxLength(1000)
+ .HasComment("洲")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.VipCountryName)
+ .HasMaxLength(1000)
+ .HasComment("vip国家")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.VipTypeLimit)
+ .HasDefaultValue(1)
+ .HasComment("会员等级限制");
+ entity.Property(e => e.VipVisible).HasComment("仅会员可见");
+ //添加全局筛选器
+ if (this.TenantInfo != null)
+ {
+ entity.HasQueryFilter(it => it.TenantId == this.TenantInfo.TenantId);
+ }
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.GameId).HasName("PK_T_GAMEINPUTSETTING");
+
+ entity.ToTable(tb => tb.HasComment("游戏虚拟手柄,虚拟键盘设置"));
+
+ entity.Property(e => e.GameId)
+ .HasMaxLength(50)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.CreateTime).HasColumnType("datetime");
+ entity.Property(e => e.IsGamePad).HasComment("是否有手柄");
+ entity.Property(e => e.IsKeyboard).HasComment("是否有虚拟键盘");
+ entity.Property(e => e.IsToggleKeyboard).HasComment("是否显示切换键盘按钮");
+ entity.Property(e => e.Remark)
+ .HasMaxLength(100)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.UpdateTime).HasColumnType("datetime");
+ //添加全局筛选器
+ if (this.TenantInfo != null)
+ {
+ entity.HasQueryFilter(it => it.TenantId == this.TenantInfo.TenantId);
+ }
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_T_GAMEKEYPLAN_CBT");
+
+ entity.ToTable(tb => tb.HasComment("游戏按键方案配置表"));
+
+ entity.Property(e => e.CreateTime).HasColumnType("datetime");
+ entity.Property(e => e.GameId)
+ .HasMaxLength(50)
+ .IsUnicode(false)
+ .HasComment("游戏id")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.IsOnline).HasComment("是否启用");
+ entity.Property(e => e.OrderId)
+ .HasDefaultValue(1)
+ .HasComment("排序");
+ entity.Property(e => e.PlanName)
+ .HasMaxLength(100)
+ .HasComment("方案名称")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.PlanType)
+ .HasDefaultValue(1)
+ .HasComment("方案类型1键盘 2手柄");
+ entity.Property(e => e.Remark)
+ .HasMaxLength(200)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.UpdateTime).HasColumnType("datetime");
+ //添加全局筛选器
+ if (this.TenantInfo != null)
+ {
+ entity.HasQueryFilter(it => it.TenantId == this.TenantInfo.TenantId);
+ }
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_T_GAMEPRESSKEY");
+
+ entity.ToTable(tb => tb.HasComment("按键表"));
+
+ entity.Property(e => e.Id).HasComment("主键");
+ entity.Property(e => e.CreateDateTime)
+ .HasComment("创建时间")
+ .HasColumnType("datetime");
+ entity.Property(e => e.GamePressKeyGroupBy).HasComment("按键分组,手柄还是键盘");
+ entity.Property(e => e.GamePressKeyPlanId).HasComment("所属方案");
+ entity.Property(e => e.PositionX)
+ .HasComment("按键X坐标")
+ .HasColumnType("decimal(5, 2)");
+ entity.Property(e => e.PositionY)
+ .HasComment("按键Y坐标")
+ .HasColumnType("decimal(5, 2)");
+ entity.Property(e => e.PressKey)
+ .HasMaxLength(50)
+ .HasComment("按键值")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.PressKeyHeight).HasComment("按键高度");
+ entity.Property(e => e.PressKeyIdentification)
+ .HasMaxLength(64)
+ .HasComment("按键标识")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.PressKeyImageId).HasComment("按键图片");
+ entity.Property(e => e.PressKeyIndex).HasComment("按键序号");
+ entity.Property(e => e.PressKeyMagnification)
+ .HasComment("按键放大倍数")
+ .HasColumnType("decimal(5, 2)");
+ entity.Property(e => e.PressKeyName)
+ .HasMaxLength(50)
+ .HasComment("按键名称")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.PressKeySelectImageId).HasComment("选中图片");
+ entity.Property(e => e.PressKeyType).HasComment("按键类型,鼠标、键盘还是手柄的功能按键等");
+ entity.Property(e => e.PressKeyWidth).HasComment("按键宽度");
+ entity.Property(e => e.UpdateDateTime)
+ .HasComment("修改时间")
+ .HasColumnType("datetime");
+ //添加全局筛选器
+ if (this.TenantInfo != null)
+ {
+ entity.HasQueryFilter(it => it.TenantId == this.TenantInfo.TenantId);
+ }
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_T_GAMEPRESSKEYPLAN");
+
+ entity.ToTable(tb => tb.HasComment("游戏按键方案"));
+
+ entity.Property(e => e.Id).HasComment("主键");
+ entity.Property(e => e.CreateDateTime)
+ .HasComment("创建时间")
+ .HasColumnType("datetime");
+ entity.Property(e => e.GameId)
+ .HasMaxLength(50)
+ .HasComment("所属游戏编号")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.GamePressKeyDefault).HasComment("是否默认,");
+ entity.Property(e => e.GamePressKeyGroupBy).HasComment("方案分组,键盘还是手柄");
+ entity.Property(e => e.GamePressKeyPlanName)
+ .HasMaxLength(50)
+ .HasComment("按键方案名称")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.GamePressKeyRemark)
+ .HasMaxLength(200)
+ .HasComment("方案备注")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.Identification)
+ .HasMaxLength(64)
+ .HasComment("标识")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.IsEnable).HasComment("是否启用");
+ entity.Property(e => e.UpdateDateTime)
+ .HasComment("修改时间")
+ .HasColumnType("datetime");
+ //添加全局筛选器
+ if (this.TenantInfo != null)
+ {
+ entity.HasQueryFilter(it => it.TenantId == this.TenantInfo.TenantId);
+ }
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_T_GAMESHOW");
+
+ entity.ToTable(tb => tb.HasComment("游戏展示"));
+
+ entity.Property(e => e.CreateTime).HasColumnType("datetime");
+ entity.Property(e => e.DataId).HasComment("图片或者视频的Id");
+ entity.Property(e => e.Desc)
+ .HasMaxLength(50)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.GameId)
+ .HasMaxLength(100)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.Name)
+ .HasMaxLength(50)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.Type).HasComment("1图片,2视频 展示类型");
+ entity.Property(e => e.UpdateTime).HasColumnType("datetime");
+ //添加全局筛选器
+ if (this.TenantInfo != null)
+ {
+ entity.HasQueryFilter(it => it.TenantId == this.TenantInfo.TenantId);
+ }
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.GameId).HasName("PK_T_GME_DISCOUNTCFG");
+
+ entity.ToTable(tb => tb.HasComment("游戏减价配置表"));
+
+ entity.Property(e => e.GameId)
+ .HasMaxLength(50)
+ .IsUnicode(false)
+ .HasComment("游戏Id")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.ChargeDesc)
+ .HasMaxLength(100)
+ .HasComment("折扣资费描述-自定义")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.DiscountDiamondNum).HasComment("折扣钻石价格");
+ entity.Property(e => e.DiscountDiamondNumHour).HasComment("折扣每小时钻石费用");
+ entity.Property(e => e.DiscountDiamondNumHourVip).HasComment("每小时折扣VIP钻石费用");
+ entity.Property(e => e.DiscountMoguNum).HasComment("折扣蘑菇币价格");
+ entity.Property(e => e.DiscountMoguNumHour).HasComment("折扣每小时蘑菇币费用");
+ entity.Property(e => e.DiscountMoguNumHourVip).HasComment("每小时折扣VIP蘑菇币费用");
+ entity.Property(e => e.EndTime)
+ .HasComment("结束时间")
+ .HasColumnType("datetime");
+ entity.Property(e => e.StartTime)
+ .HasComment("开始时间")
+ .HasColumnType("datetime");
+ entity.Property(e => e.Status).HasComment("状态-1禁用");
+ //添加全局筛选器
+ if (this.TenantInfo != null)
+ {
+ entity.HasQueryFilter(it => it.TenantId == this.TenantInfo.TenantId);
+ }
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_T_KEYBOARDSETTING");
+
+ entity.ToTable(tb => tb.HasComment("虚拟键盘配置表"));
+
+ entity.Property(e => e.CreateTime).HasColumnType("datetime");
+ entity.Property(e => e.GameId)
+ .HasMaxLength(50)
+ .HasComment("游戏Id")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.GameIdentification)
+ .HasMaxLength(100)
+ .HasComment("游戏按键标识")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.IsKeyDrag).HasComment("是否可以拖动");
+ entity.Property(e => e.IsOnline).HasComment("是否有这个键值\r\n 没有这个选项表示用基本的\r\n 如果有这个选项并且是ture 就用这个键值\r\n 如果有这个选项并且是false就表示没有这个键值");
+ entity.Property(e => e.IsPressLock).HasComment("是否按下锁定");
+ entity.Property(e => e.KeyIndex)
+ .HasMaxLength(50)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.KeyType).HasComment("按键类型0键盘1手柄");
+ entity.Property(e => e.Name)
+ .HasMaxLength(100)
+ .HasComment("键的名字")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.Remark)
+ .HasMaxLength(100)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.UIId).HasComment("键值位置,大小");
+ entity.Property(e => e.UpdateTime).HasColumnType("datetime");
+ //添加全局筛选器
+ if (this.TenantInfo != null)
+ {
+ entity.HasQueryFilter(it => it.TenantId == this.TenantInfo.TenantId);
+ }
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_T_PLANKEY_CBT");
+
+ entity.ToTable(tb => tb.HasComment("方案按键配置表"));
+
+ entity.Property(e => e.CreateTime).HasColumnType("datetime");
+ entity.Property(e => e.H).HasComment("h坐标或者高度");
+ entity.Property(e => e.ImageId).HasComment("默认图片id");
+ entity.Property(e => e.KeyIndex)
+ .HasMaxLength(100)
+ .HasComment("键盘对应的ascii码")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.KeyName)
+ .HasMaxLength(100)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.PlanId).HasComment("方案id");
+ entity.Property(e => e.Remark)
+ .HasMaxLength(200)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.SelectImageId).HasComment("选中图片id");
+ entity.Property(e => e.UpdateTime).HasColumnType("datetime");
+ entity.Property(e => e.W).HasComment("w坐标或者宽度");
+ entity.Property(e => e.X).HasComment("x坐标");
+ entity.Property(e => e.Y).HasComment("y坐标");
+ //添加全局筛选器
+ if (this.TenantInfo != null)
+ {
+ entity.HasQueryFilter(it => it.TenantId == this.TenantInfo.TenantId);
+ }
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_T_POPOUT");
+
+ entity.ToTable(tb => tb.HasComment("通用弹框配置"));
+
+ entity.Property(e => e.BossId)
+ .HasMaxLength(20)
+ .HasComment("上线渠道号")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.Btn_Bg).HasComment("弹框背景图");
+ entity.Property(e => e.Btn_Close)
+ .HasDefaultValue(0)
+ .HasComment("关闭按钮图片");
+ entity.Property(e => e.Btn_OK)
+ .HasDefaultValue(0)
+ .HasComment("确认按钮图片");
+ entity.Property(e => e.CreateTime)
+ .HasComment("创建时间")
+ .HasColumnType("datetime");
+ entity.Property(e => e.Desc)
+ .HasMaxLength(100)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.EndTime)
+ .HasComment("结束时间")
+ .HasColumnType("datetime");
+ entity.Property(e => e.Extend1)
+ .HasMaxLength(200)
+ .HasComment("扩展参数1")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.ImageId_Text)
+ .HasDefaultValue(0)
+ .HasComment("内容图片Id");
+ entity.Property(e => e.IsOnline).HasComment("是否启用");
+ entity.Property(e => e.Name)
+ .HasMaxLength(100)
+ .HasComment("弹框名字")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.OrderId).HasComment("排序");
+ entity.Property(e => e.PlatformId)
+ .HasMaxLength(20)
+ .HasComment("上线平台")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.StartTime)
+ .HasComment("开始时间")
+ .HasColumnType("datetime");
+ entity.Property(e => e.Text)
+ .HasComment("弹窗显示文字")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.Type).HasComment("弹框类型");
+ entity.Property(e => e.UpdateTime)
+ .HasComment("修改时间")
+ .HasColumnType("datetime");
+ //添加全局筛选器
+ if (this.TenantInfo != null)
+ {
+ entity.HasQueryFilter(it => it.TenantId == this.TenantInfo.TenantId);
+ }
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK__T_PopupB__3214EC0745B6593D");
+
+ entity.ToTable(tb => tb.HasComment("弹窗按钮"));
+
+ entity.Property(e => e.Action)
+ .HasMaxLength(100)
+ .HasComment("动作");
+ entity.Property(e => e.DelaySecond).HasComment("延迟几秒显示按钮");
+ entity.Property(e => e.Height).HasComment("高度");
+ entity.Property(e => e.Image).HasComment("背景图片");
+ entity.Property(e => e.Name)
+ .HasMaxLength(50)
+ .HasComment("按钮名称");
+ entity.Property(e => e.Text)
+ .HasMaxLength(100)
+ .HasComment("文本");
+ entity.Property(e => e.Widht).HasComment("宽度");
+ entity.Property(e => e.X).HasComment("X坐标");
+ entity.Property(e => e.Y).HasComment("Y坐标");
+ //添加全局筛选器
+ if (this.TenantInfo != null)
+ {
+ entity.HasQueryFilter(it => it.TenantId == this.TenantInfo.TenantId);
+ }
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_T_SEVENDAYSIGNIN_AWARDCBT");
+
+ entity.ToTable(tb => tb.HasComment("七日签到奖励配置表"));
+
+ entity.Property(e => e.AwardType).HasComment("1钻石 2蘑菇币 3贡献值 4一日会员");
+ entity.Property(e => e.CreateTime).HasColumnType("datetime");
+ entity.Property(e => e.Remark)
+ .HasMaxLength(200)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.UpdateTime).HasColumnType("datetime");
+ //添加全局筛选器
+ if (this.TenantInfo != null)
+ {
+ entity.HasQueryFilter(it => it.TenantId == this.TenantInfo.TenantId);
+ }
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_T_SIGNTYPES");
+
+ entity.ToTable(tb => tb.HasComment("签到类型"));
+
+ entity.Property(e => e.CreateTime).HasColumnType("datetime");
+ entity.Property(e => e.Desc)
+ .HasMaxLength(50)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.Name)
+ .HasMaxLength(50)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.Type).HasComment("签到类型");
+ entity.Property(e => e.UpdateTime).HasColumnType("datetime");
+ //添加全局筛选器
+ if (this.TenantInfo != null)
+ {
+ entity.HasQueryFilter(it => it.TenantId == this.TenantInfo.TenantId);
+ }
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_T_SYSMESSAGE");
+
+ entity.ToTable(tb => tb.HasComment("系统公告"));
+
+ entity.Property(e => e.CreateTime).HasColumnType("datetime");
+ entity.Property(e => e.Desc)
+ .HasMaxLength(100)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.EndTime)
+ .HasDefaultValueSql("(getdate())")
+ .HasColumnType("datetime");
+ entity.Property(e => e.MessageId).HasComment("消息Id");
+ entity.Property(e => e.Name)
+ .HasMaxLength(100)
+ .HasComment("名称")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.StartTime)
+ .HasDefaultValueSql("(getdate())")
+ .HasColumnType("datetime");
+ entity.Property(e => e.Text)
+ .HasComment("内容")
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.UpdateTime).HasColumnType("datetime");
+ //添加全局筛选器
+ if (this.TenantInfo != null)
+ {
+ entity.HasQueryFilter(it => it.TenantId == this.TenantInfo.TenantId);
+ }
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_T_UITYPES");
+
+ entity.ToTable(tb => tb.HasComment("位置大小类型列表"));
+
+ entity.Property(e => e.CreateTime).HasColumnType("datetime");
+ entity.Property(e => e.Desc)
+ .HasMaxLength(50)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.Name)
+ .HasMaxLength(50)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.UpdateTime).HasColumnType("datetime");
+ //添加全局筛选器
+ if (this.TenantInfo != null)
+ {
+ entity.HasQueryFilter(it => it.TenantId == this.TenantInfo.TenantId);
+ }
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_T_UIS");
+
+ entity.ToTable(tb => tb.HasComment("UI集合"));
+
+ entity.Property(e => e.CreateTime).HasColumnType("datetime");
+ entity.Property(e => e.Desc)
+ .HasMaxLength(100)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.ImageId).HasComment("未选中图片id");
+ entity.Property(e => e.Name)
+ .HasMaxLength(50)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.Scale)
+ .HasDefaultValue(1.0)
+ .HasComment("放大倍数");
+ entity.Property(e => e.SelectedImage).HasComment("选中图片id");
+ entity.Property(e => e.UpdateTime).HasColumnType("datetime");
+ //添加全局筛选器
+ if (this.TenantInfo != null)
+ {
+ entity.HasQueryFilter(it => it.TenantId == this.TenantInfo.TenantId);
+ }
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_T_VIDEOS");
+
+ entity.ToTable(tb => tb.HasComment("视频列表"));
+
+ entity.Property(e => e.CreateTime).HasColumnType("datetime");
+ entity.Property(e => e.Desc)
+ .HasMaxLength(100)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.Name)
+ .HasMaxLength(100)
+ .UseCollation("Chinese_PRC_CI_AS");
+ entity.Property(e => e.UpdateTime).HasColumnType("datetime");
+ entity.Property(e => e.Url)
+ .HasMaxLength(200)
+ .UseCollation("Chinese_PRC_CI_AS");
+ //添加全局筛选器
+ if (this.TenantInfo != null)
+ {
+ entity.HasQueryFilter(it => it.TenantId == this.TenantInfo.TenantId);
+ }
+ });
+
+ OnModelCreatingPartial(modelBuilder);
+ }
+
+ partial void OnModelCreatingPartial(ModelBuilder modelBuilder);
+}
diff --git a/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_AvatarFrame.cs b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_AvatarFrame.cs
new file mode 100644
index 0000000..dda9d0e
--- /dev/null
+++ b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_AvatarFrame.cs
@@ -0,0 +1,48 @@
+using System;
+
+namespace CloudGaming.Model.DbSqlServer.Db_Phone;
+
+///
+/// 用户头像框
+///
+public partial class T_AvatarFrame: MultiTenantEntity
+{
+ public T_AvatarFrame() { }
+
+ public virtual int Id { get; set; }
+
+ ///
+ /// 头像框Id
+ ///
+ public virtual string? AvatarId { get; set; }
+
+ ///
+ /// 头像框名称
+ ///
+ public virtual string? Name { get; set; }
+
+ public virtual int? ImageId { get; set; }
+
+ public virtual int? VipType { get; set; }
+
+ public virtual int? OrderId { get; set; }
+
+ public virtual bool? IsOnline { get; set; }
+
+ public virtual DateTime? UpdateTime { get; set; }
+
+ public virtual DateTime? CreateTime { get; set; }
+
+ public virtual string? Desc { get; set; }
+
+ ///
+ /// 头像框备注用图
+ ///
+ public virtual int? ImageId2 { get; set; }
+
+ ///
+ /// 头像框名称色号
+ ///
+ public virtual string NameColor { get; set; } = null!;
+
+}
diff --git a/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_Epg_CategoryCfg.cs b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_Epg_CategoryCfg.cs
new file mode 100644
index 0000000..50f5f13
--- /dev/null
+++ b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_Epg_CategoryCfg.cs
@@ -0,0 +1,103 @@
+using System;
+
+namespace CloudGaming.Model.DbSqlServer.Db_Phone;
+
+///
+/// Epg分组配置表
+///
+public partial class T_Epg_CategoryCfg: MultiTenantEntity
+{
+ public T_Epg_CategoryCfg() { }
+
+ ///
+ /// epg分组Id
+ ///
+ public virtual int EpgCategory { get; set; }
+
+ ///
+ /// epg父组Id, 0无
+ ///
+ public virtual int EpgParentCategory { get; set; }
+
+ ///
+ /// 分组名称
+ ///
+ public virtual string? Name { get; set; }
+
+ ///
+ /// 排序-正序
+ ///
+ public virtual int OrderId { get; set; }
+
+ ///
+ /// 是否启用
+ ///
+ public virtual bool IsOnline { get; set; }
+
+ ///
+ /// 扩展字段1
+ ///
+ public virtual string? Extend1 { get; set; }
+
+ ///
+ /// 扩展字段2
+ ///
+ public virtual string? Extend2 { get; set; }
+
+ ///
+ /// 扩展字段3
+ ///
+ public virtual string? Extend3 { get; set; }
+
+ ///
+ /// 上线平台
+ ///
+ public virtual string? OnlinePlatform { get; set; }
+
+ ///
+ /// 首页展示数量
+ ///
+ public virtual int ShowNum_Index { get; set; }
+
+ ///
+ /// 代码标识
+ ///
+ public virtual string? IdName { get; set; }
+
+ ///
+ /// 图片-预留
+ ///
+ public virtual int ImageId { get; set; }
+
+ ///
+ /// 图片-预留
+ ///
+ public virtual int ImageId2 { get; set; }
+
+ ///
+ /// 上线渠道,0不限制
+ ///
+ public virtual string? OnlineBossId { get; set; }
+
+
+
+ ///
+ /// 快速启动弹窗
+ ///
+ public virtual bool IsQuickStartPopUp { get; set; }
+
+ ///
+ /// 联机游戏快速启动弹窗
+ ///
+ public virtual bool IsOnlineQuickStartPopUp { get; set; }
+
+ ///
+ /// 审核模式下不显示
+ ///
+ public virtual bool? IsNotCheckingShow { get; set; }
+
+ ///
+ /// 非审核(正常)模式是否关闭
+ ///
+ public virtual int IsStandardClose { get; set; }
+}
diff --git a/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_Epg_CategoryCfg_Export.cs b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_Epg_CategoryCfg_Export.cs
new file mode 100644
index 0000000..623641e
--- /dev/null
+++ b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_Epg_CategoryCfg_Export.cs
@@ -0,0 +1,80 @@
+
+namespace CloudGaming.Model.DbSqlServer.Db_Phone;
+
+///
+/// Epg分组配置表
+///
+public partial class T_Epg_CategoryCfg_Export: MultiTenantEntity
+{
+ public T_Epg_CategoryCfg_Export() { }
+
+ ///
+ /// epg分组Id
+ ///
+ public virtual int EpgCategory { get; set; }
+
+ ///
+ /// epg父组Id, 0无
+ ///
+ public virtual int EpgParentCategory { get; set; }
+
+ ///
+ /// 分组名称
+ ///
+ public virtual string? Name { get; set; }
+
+ ///
+ /// 排序-正序
+ ///
+ public virtual int OrderId { get; set; }
+
+ ///
+ /// 是否启用
+ ///
+ public virtual bool IsOnline { get; set; }
+
+ ///
+ /// 扩展字段1
+ ///
+ public virtual string? Extend1 { get; set; }
+
+ ///
+ /// 扩展字段2
+ ///
+ public virtual string? Extend2 { get; set; }
+
+ ///
+ /// 扩展字段3
+ ///
+ public virtual string? Extend3 { get; set; }
+
+ ///
+ /// 上线平台
+ ///
+ public virtual string? OnlinePlatform { get; set; }
+
+ ///
+ /// 首页展示数量
+ ///
+ public virtual int ShowNum_Index { get; set; }
+
+ ///
+ /// 代码标识
+ ///
+ public virtual string? IdName { get; set; }
+
+ ///
+ /// 图片-预留
+ ///
+ public virtual int ImageId { get; set; }
+
+ ///
+ /// 图片-预留
+ ///
+ public virtual int ImageId2 { get; set; }
+
+ ///
+ /// 上线渠道,0不限制
+ ///
+ public virtual string? OnlineBossId { get; set; }
+}
diff --git a/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_Epg_Cfg.cs b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_Epg_Cfg.cs
new file mode 100644
index 0000000..ec9d65d
--- /dev/null
+++ b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_Epg_Cfg.cs
@@ -0,0 +1,159 @@
+using System;
+
+namespace CloudGaming.Model.DbSqlServer.Db_Phone;
+
+///
+/// Epg配置表
+///
+public partial class T_Epg_Cfg: MultiTenantEntity
+{
+ public T_Epg_Cfg() { }
+
+ ///
+ /// 标识
+ ///
+ public virtual int EpgId { get; set; }
+
+ ///
+ /// epg分组
+ ///
+ public virtual int EpgCategory { get; set; }
+
+ ///
+ /// 资源Id
+ ///
+ public virtual string? ResId { get; set; }
+
+ ///
+ /// 资源类型
+ ///
+ public virtual int ResType { get; set; }
+
+ ///
+ /// 资源参数
+ ///
+ public virtual string? ResParams { get; set; }
+
+ ///
+ /// 排序-正序
+ ///
+ public virtual int OrderId { get; set; }
+
+ ///
+ /// 标题
+ ///
+ public virtual string? Title { get; set; }
+
+ ///
+ /// 标题2
+ ///
+ public virtual string? Title2 { get; set; }
+
+ ///
+ /// 图片
+ ///
+ public virtual int ImageId { get; set; }
+
+ ///
+ /// 使用原始资源图样式n_n
+ ///
+ public virtual string? ImageResStyle { get; set; }
+
+ ///
+ /// 视频地址
+ ///
+ public virtual string? VideoUrl { get; set; }
+
+ ///
+ /// 是否启用
+ ///
+ public virtual bool IsOnline { get; set; }
+
+ ///
+ /// 角标
+ ///
+ public virtual int CornerIconId { get; set; }
+
+ ///
+ /// 展示样式:more
+ ///
+ public virtual string? StyleType { get; set; }
+
+ ///
+ /// 更新时间
+ ///
+ public virtual DateTime UpdateTime { get; set; }
+
+ ///
+ /// 扩展字段1
+ ///
+ public virtual string? Extend1 { get; set; }
+
+ ///
+ /// 扩展字段2
+ ///
+ public virtual string? Extend2 { get; set; }
+
+ ///
+ /// 扩展字段3
+ ///
+ public virtual string? Extend3 { get; set; }
+
+ public virtual string? OnlinePlatform { get; set; }
+
+ public virtual int SpecialId { get; set; }
+
+ public virtual string? IdName { get; set; }
+
+ ///
+ /// 图片2-预留
+ ///
+ public virtual int ImageId2 { get; set; }
+
+ public virtual string? OnlineBossId { get; set; }
+
+ ///
+ /// 视频标识
+ ///
+ public virtual string? VideoIdentification { get; set; }
+
+ ///
+ /// 联机快速启动
+ ///
+ public virtual bool IsOnlineQuickStartPopUp { get; set; }
+
+ ///
+ /// 启用时间
+ ///
+ public virtual DateTime? StartEnableTime { get; set; }
+
+ ///
+ /// 结束时间
+ ///
+ public virtual DateTime? EndEnableTime { get; set; }
+
+ ///
+ /// 图片3
+ ///
+ public virtual int ImageId3 { get; set; }
+
+ ///
+ /// 国家
+ ///
+ public virtual string? CountryName { get; set; }
+
+ ///
+ /// 州
+ ///
+ public virtual string? Continent { get; set; }
+
+ ///
+ /// 非审核(正常)模式是否关闭
+ ///
+ public virtual int IsStandardClose { get; set; }
+
+ ///
+ /// 审核模式是否关闭
+ ///
+ public virtual int IsCheckingClose { get; set; }
+}
diff --git a/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_Epg_Cfg_Export.cs b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_Epg_Cfg_Export.cs
new file mode 100644
index 0000000..53288d8
--- /dev/null
+++ b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_Epg_Cfg_Export.cs
@@ -0,0 +1,126 @@
+using System;
+
+namespace CloudGaming.Model.DbSqlServer.Db_Phone;
+
+///
+/// Epg配置表
+///
+public partial class T_Epg_Cfg_Export: MultiTenantEntity
+{
+ public T_Epg_Cfg_Export() { }
+
+ ///
+ /// 标识
+ ///
+ public virtual int EpgId { get; set; }
+
+ ///
+ /// epg分组
+ ///
+ public virtual int EpgCategory { get; set; }
+
+ ///
+ /// 资源Id
+ ///
+ public virtual string? ResId { get; set; }
+
+ ///
+ /// 资源类型
+ ///
+ public virtual int ResType { get; set; }
+
+ ///
+ /// 资源参数
+ ///
+ public virtual string? ResParams { get; set; }
+
+ ///
+ /// 排序-正序
+ ///
+ public virtual int OrderId { get; set; }
+
+ ///
+ /// 标题
+ ///
+ public virtual string? Title { get; set; }
+
+ ///
+ /// 标题2
+ ///
+ public virtual string? Title2 { get; set; }
+
+ ///
+ /// 图片
+ ///
+ public virtual int ImageId { get; set; }
+
+ ///
+ /// 使用原始资源图样式n_n
+ ///
+ public virtual string? ImageResStyle { get; set; }
+
+ ///
+ /// 视频地址
+ ///
+ public virtual string? VideoUrl { get; set; }
+
+ ///
+ /// 是否启用
+ ///
+ public virtual bool IsOnline { get; set; }
+
+ ///
+ /// 角标
+ ///
+ public virtual int CornerIconId { get; set; }
+
+ ///
+ /// 展示样式:more
+ ///
+ public virtual string? StyleType { get; set; }
+
+ ///
+ /// 更新时间
+ ///
+ public virtual DateTime UpdateTime { get; set; }
+
+ ///
+ /// 扩展字段1
+ ///
+ public virtual string? Extend1 { get; set; }
+
+ ///
+ /// 扩展字段2
+ ///
+ public virtual string? Extend2 { get; set; }
+
+ ///
+ /// 扩展字段3
+ ///
+ public virtual string? Extend3 { get; set; }
+
+ ///
+ /// 上线平台
+ ///
+ public virtual string? OnlinePlatform { get; set; }
+
+ ///
+ /// 特殊标志
+ ///
+ public virtual int SpecialId { get; set; }
+
+ ///
+ /// 代码标识
+ ///
+ public virtual string? IdName { get; set; }
+
+ ///
+ /// 图片2
+ ///
+ public virtual int ImageId2 { get; set; }
+
+ ///
+ /// 上线渠道,0不限
+ ///
+ public virtual string? OnlineBossId { get; set; }
+}
diff --git a/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_FloatBall_Cfg.cs b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_FloatBall_Cfg.cs
new file mode 100644
index 0000000..fefc071
--- /dev/null
+++ b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_FloatBall_Cfg.cs
@@ -0,0 +1,69 @@
+using System;
+
+namespace CloudGaming.Model.DbSqlServer.Db_Phone;
+
+///
+/// 悬浮球配置
+///
+public partial class T_FloatBall_Cfg: MultiTenantEntity
+{
+ public T_FloatBall_Cfg() { }
+
+ public virtual int Id { get; set; }
+
+ ///
+ /// 名称
+ ///
+ public virtual string? Name { get; set; }
+
+ ///
+ /// 资源Id
+ ///
+ public virtual string? ResId { get; set; }
+
+ ///
+ /// 资源类型
+ ///
+ public virtual int ResType { get; set; }
+
+ ///
+ /// 坐标x
+ ///
+ public virtual double Pos1 { get; set; }
+
+ ///
+ /// 坐标y
+ ///
+ public virtual double Pos2 { get; set; }
+
+ ///
+ /// 是否点击后隐藏
+ ///
+ public virtual bool HideAfterClick { get; set; }
+
+ ///
+ /// 是否启用
+ ///
+ public virtual bool IsOnline { get; set; }
+
+ ///
+ /// 状态-显示
+ ///
+ public virtual int ImageId1 { get; set; }
+
+ ///
+ /// 状态-隐藏
+ ///
+ public virtual int ImageId2 { get; set; }
+
+ ///
+ /// 修改时间
+ ///
+ public virtual DateTime UpdateTime { get; set; }
+
+
+ ///
+ /// 渠道号id
+ ///
+ public virtual string BossId { get; set; } = null!;
+}
diff --git a/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_GameCBT.cs b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_GameCBT.cs
new file mode 100644
index 0000000..487765e
--- /dev/null
+++ b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_GameCBT.cs
@@ -0,0 +1,169 @@
+using System;
+
+namespace CloudGaming.Model.DbSqlServer.Db_Phone;
+
+///
+/// 游戏配置
+///
+public partial class T_GameCBT: MultiTenantEntity
+{
+ public T_GameCBT() { }
+
+ public virtual int Id { get; set; }
+
+ ///
+ /// 游戏Id
+ ///
+ public virtual string? GameId { get; set; }
+
+ ///
+ /// 游戏详情也配置背景
+ ///
+ public virtual int? GameBgImgId { get; set; }
+
+ ///
+ /// 游戏Icon
+ ///
+ public virtual int? GameImageId { get; set; }
+
+ ///
+ /// 是否启用
+ ///
+ public virtual bool? IsOnline { get; set; }
+
+ ///
+ /// 评分
+ ///
+ public virtual string? Score { get; set; }
+
+ ///
+ /// 排序
+ ///
+ public virtual int? OrderId { get; set; }
+
+ public virtual DateTime? UpdateTime { get; set; }
+
+ public virtual DateTime? CreateTime { get; set; }
+
+ ///
+ /// 备注
+ ///
+ public virtual string? Desc { get; set; }
+
+ ///
+ /// 游戏加载图
+ ///
+ public virtual int? GameLoadBgImageId { get; set; }
+
+ ///
+ /// 游戏icon
+ ///
+ public virtual int? ImageIconId { get; set; }
+
+ ///
+ /// 是否测试游戏
+ ///
+ public virtual bool? IsTest { get; set; }
+
+ ///
+ /// VIP专属
+ ///
+ public virtual bool IsLimitToVip { get; set; }
+
+ ///
+ /// Loading时间
+ ///
+ public virtual int GameLoadTime { get; set; }
+
+ ///
+ /// 尊享推荐
+ ///
+ public virtual int ImageId_ZXTJ { get; set; }
+
+ ///
+ /// 精选推荐
+ ///
+ public virtual int ImageId_JXTJ { get; set; }
+
+ ///
+ /// 推荐大图
+ ///
+ public virtual int ImageId_TJ { get; set; }
+
+ public virtual string? Title2 { get; set; }
+
+ ///
+ /// 游戏名称
+ ///
+ public virtual string? GameName { get; set; }
+
+ ///
+ /// 最近推出
+ ///
+ public virtual int ImageId_ZJTC { get; set; }
+
+ ///
+ /// 顶部图片
+ ///
+ public virtual int ImageId_Banner { get; set; }
+
+ ///
+ /// 视频地址
+ ///
+ public virtual string? VideoUrl { get; set; }
+
+ ///
+ /// 每小时钻石费用
+ ///
+ public virtual int ConsumeDiamondNumHour { get; set; }
+
+ ///
+ /// 每小时VIP钻石费用
+ ///
+ public virtual int ConsumeDiamondNumHourVip { get; set; }
+
+ ///
+ /// 游戏分组:0单机,1steam,2网游
+ ///
+ public virtual int GameGroup { get; set; }
+
+ ///
+ /// 会员等级限制
+ ///
+ public virtual int VipTypeLimit { get; set; }
+
+ ///
+ /// 仅会员可见
+ ///
+ public virtual bool VipVisible { get; set; }
+
+ ///
+ /// 是否参与优惠套餐活动(比如包夜卡,周中卡之类的)
+ ///
+ public virtual bool IsDiscount { get; set; }
+
+ ///
+ /// 平台类型,为空全选
+ ///
+ public virtual string OnlinePlatform { get; set; } = null!;
+
+ ///
+ /// 视频标识
+ ///
+ public virtual string? VideoIdentification { get; set; }
+
+ ///
+ /// vip国家
+ ///
+ public virtual string? VipCountryName { get; set; }
+
+ ///
+ /// 洲
+ ///
+ public virtual string? VipContinent { get; set; }
+
+ ///
+ /// 启动提示
+ ///
+ public virtual string? FriendlyTips { get; set; }
+}
diff --git a/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_GameInputSetting.cs b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_GameInputSetting.cs
new file mode 100644
index 0000000..8e35b00
--- /dev/null
+++ b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_GameInputSetting.cs
@@ -0,0 +1,34 @@
+using System;
+
+namespace CloudGaming.Model.DbSqlServer.Db_Phone;
+
+///
+/// 游戏虚拟手柄,虚拟键盘设置
+///
+public partial class T_GameInputSetting: MultiTenantEntity
+{
+ public T_GameInputSetting() { }
+
+ public virtual string GameId { get; set; } = null!;
+
+ ///
+ /// 是否有手柄
+ ///
+ public virtual bool IsGamePad { get; set; }
+
+ ///
+ /// 是否有虚拟键盘
+ ///
+ public virtual bool IsKeyboard { get; set; }
+
+ public virtual DateTime UpdateTime { get; set; }
+
+ public virtual DateTime CreateTime { get; set; }
+
+ public virtual string? Remark { get; set; }
+
+ ///
+ /// 是否显示切换键盘按钮
+ ///
+ public virtual bool IsToggleKeyboard { get; set; }
+}
diff --git a/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_GameKeyPlan_CBT.cs b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_GameKeyPlan_CBT.cs
new file mode 100644
index 0000000..67fb904
--- /dev/null
+++ b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_GameKeyPlan_CBT.cs
@@ -0,0 +1,44 @@
+using System;
+
+namespace CloudGaming.Model.DbSqlServer.Db_Phone;
+
+///
+/// 游戏按键方案配置表
+///
+public partial class T_GameKeyPlan_CBT: MultiTenantEntity
+{
+ public T_GameKeyPlan_CBT() { }
+
+ public virtual int Id { get; set; }
+
+ ///
+ /// 游戏id
+ ///
+ public virtual string GameId { get; set; } = null!;
+
+ ///
+ /// 排序
+ ///
+ public virtual int OrderId { get; set; }
+
+ ///
+ /// 方案名称
+ ///
+ public virtual string PlanName { get; set; } = null!;
+
+ ///
+ /// 是否启用
+ ///
+ public virtual bool IsOnline { get; set; }
+
+ public virtual DateTime CreateTime { get; set; }
+
+ public virtual DateTime UpdateTime { get; set; }
+
+ public virtual string? Remark { get; set; }
+
+ ///
+ /// 方案类型1键盘 2手柄
+ ///
+ public virtual int PlanType { get; set; }
+}
diff --git a/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_GamePressKey.cs b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_GamePressKey.cs
new file mode 100644
index 0000000..00e66d7
--- /dev/null
+++ b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_GamePressKey.cs
@@ -0,0 +1,96 @@
+using System;
+
+namespace CloudGaming.Model.DbSqlServer.Db_Phone;
+
+///
+/// 按键表
+///
+public partial class T_GamePressKey: MultiTenantEntity
+{
+ public T_GamePressKey() { }
+
+ ///
+ /// 主键
+ ///
+ public virtual int Id { get; set; }
+
+ ///
+ /// 按键名称
+ ///
+ public virtual string? PressKeyName { get; set; }
+
+ ///
+ /// 按键值
+ ///
+ public virtual string? PressKey { get; set; }
+
+ ///
+ /// 按键序号
+ ///
+ public virtual int? PressKeyIndex { get; set; }
+
+ ///
+ /// 按键类型,鼠标、键盘还是手柄的功能按键等
+ ///
+ public virtual int? PressKeyType { get; set; }
+
+ ///
+ /// 按键图片
+ ///
+ public virtual int? PressKeyImageId { get; set; }
+
+ ///
+ /// 选中图片
+ ///
+ public virtual int? PressKeySelectImageId { get; set; }
+
+ ///
+ /// 按键放大倍数
+ ///
+ public virtual decimal? PressKeyMagnification { get; set; }
+
+ ///
+ /// 按键X坐标
+ ///
+ public virtual decimal? PositionX { get; set; }
+
+ ///
+ /// 按键Y坐标
+ ///
+ public virtual decimal? PositionY { get; set; }
+
+ ///
+ /// 按键宽度
+ ///
+ public virtual int? PressKeyWidth { get; set; }
+
+ ///
+ /// 按键高度
+ ///
+ public virtual int? PressKeyHeight { get; set; }
+
+ ///
+ /// 创建时间
+ ///
+ public virtual DateTime? CreateDateTime { get; set; }
+
+ ///
+ /// 修改时间
+ ///
+ public virtual DateTime? UpdateDateTime { get; set; }
+
+ ///
+ /// 所属方案
+ ///
+ public virtual int? GamePressKeyPlanId { get; set; }
+
+ ///
+ /// 按键标识
+ ///
+ public virtual string? PressKeyIdentification { get; set; }
+
+ ///
+ /// 按键分组,手柄还是键盘
+ ///
+ public virtual int? GamePressKeyGroupBy { get; set; }
+}
diff --git a/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_GamePressKeyPlan.cs b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_GamePressKeyPlan.cs
new file mode 100644
index 0000000..cfc59c1
--- /dev/null
+++ b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_GamePressKeyPlan.cs
@@ -0,0 +1,61 @@
+using System;
+
+namespace CloudGaming.Model.DbSqlServer.Db_Phone;
+
+///
+/// 游戏按键方案
+///
+public partial class T_GamePressKeyPlan: MultiTenantEntity
+{
+ public T_GamePressKeyPlan() { }
+
+ ///
+ /// 主键
+ ///
+ public virtual int Id { get; set; }
+
+ ///
+ /// 按键方案名称
+ ///
+ public virtual string? GamePressKeyPlanName { get; set; }
+
+ ///
+ /// 方案分组,键盘还是手柄
+ ///
+ public virtual int? GamePressKeyGroupBy { get; set; }
+
+ ///
+ /// 方案备注
+ ///
+ public virtual string? GamePressKeyRemark { get; set; }
+
+ ///
+ /// 是否默认,
+ ///
+ public virtual bool? GamePressKeyDefault { get; set; }
+
+ ///
+ /// 创建时间
+ ///
+ public virtual DateTime? CreateDateTime { get; set; }
+
+ ///
+ /// 修改时间
+ ///
+ public virtual DateTime? UpdateDateTime { get; set; }
+
+ ///
+ /// 标识
+ ///
+ public virtual string? Identification { get; set; }
+
+ ///
+ /// 所属游戏编号
+ ///
+ public virtual string? GameId { get; set; }
+
+ ///
+ /// 是否启用
+ ///
+ public virtual bool? IsEnable { get; set; }
+}
diff --git a/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_GameShow.cs b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_GameShow.cs
new file mode 100644
index 0000000..3ad191f
--- /dev/null
+++ b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_GameShow.cs
@@ -0,0 +1,37 @@
+using System;
+
+namespace CloudGaming.Model.DbSqlServer.Db_Phone;
+
+///
+/// 游戏展示
+///
+public partial class T_GameShow: MultiTenantEntity
+{
+ public T_GameShow() { }
+
+ public virtual int Id { get; set; }
+
+ public virtual string? Name { get; set; }
+
+ ///
+ /// 1图片,2视频 展示类型
+ ///
+ public virtual int? Type { get; set; }
+
+ ///
+ /// 图片或者视频的Id
+ ///
+ public virtual int? DataId { get; set; }
+
+ public virtual string? GameId { get; set; }
+
+ public virtual int? OrderId { get; set; }
+
+ public virtual bool? IsOnline { get; set; }
+
+ public virtual DateTime? UpdateTime { get; set; }
+
+ public virtual DateTime? CreateTime { get; set; }
+
+ public virtual string? Desc { get; set; }
+}
diff --git a/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_Game_DiscountCfg.cs b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_Game_DiscountCfg.cs
new file mode 100644
index 0000000..096d40d
--- /dev/null
+++ b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_Game_DiscountCfg.cs
@@ -0,0 +1,66 @@
+using System;
+
+namespace CloudGaming.Model.DbSqlServer.Db_Phone;
+
+///
+/// 游戏减价配置表
+///
+public partial class T_Game_DiscountCfg: MultiTenantEntity
+{
+ public T_Game_DiscountCfg() { }
+
+ ///
+ /// 游戏Id
+ ///
+ public virtual string GameId { get; set; } = null!;
+
+ ///
+ /// 折扣钻石价格
+ ///
+ public virtual int DiscountDiamondNum { get; set; }
+
+ ///
+ /// 折扣蘑菇币价格
+ ///
+ public virtual int DiscountMoguNum { get; set; }
+
+ ///
+ /// 开始时间
+ ///
+ public virtual DateTime StartTime { get; set; }
+
+ ///
+ /// 结束时间
+ ///
+ public virtual DateTime EndTime { get; set; }
+
+ ///
+ /// 状态-1禁用
+ ///
+ public virtual int Status { get; set; }
+
+ ///
+ /// 折扣每小时钻石费用
+ ///
+ public virtual int DiscountDiamondNumHour { get; set; }
+
+ ///
+ /// 折扣每小时蘑菇币费用
+ ///
+ public virtual int DiscountMoguNumHour { get; set; }
+
+ ///
+ /// 折扣资费描述-自定义
+ ///
+ public virtual string? ChargeDesc { get; set; }
+
+ ///
+ /// 每小时折扣VIP钻石费用
+ ///
+ public virtual int DiscountDiamondNumHourVip { get; set; }
+
+ ///
+ /// 每小时折扣VIP蘑菇币费用
+ ///
+ public virtual int DiscountMoguNumHourVip { get; set; }
+}
diff --git a/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_KeyboardSetting.cs b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_KeyboardSetting.cs
new file mode 100644
index 0000000..ee4184d
--- /dev/null
+++ b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_KeyboardSetting.cs
@@ -0,0 +1,64 @@
+using System;
+
+namespace CloudGaming.Model.DbSqlServer.Db_Phone;
+
+///
+/// 虚拟键盘配置表
+///
+public partial class T_KeyboardSetting: MultiTenantEntity
+{
+ public T_KeyboardSetting() { }
+
+ public virtual int Id { get; set; }
+
+ ///
+ /// 游戏Id
+ ///
+ public virtual string GameId { get; set; } = null!;
+
+ ///
+ /// 键的名字
+ ///
+ public virtual string Name { get; set; } = null!;
+
+ ///
+ /// 是否有这个键值
+ /// 没有这个选项表示用基本的
+ /// 如果有这个选项并且是ture 就用这个键值
+ /// 如果有这个选项并且是false就表示没有这个键值
+ ///
+ public virtual bool? IsOnline { get; set; }
+
+ ///
+ /// 键值位置,大小
+ ///
+ public virtual int UIId { get; set; }
+
+ public virtual DateTime CreateTime { get; set; }
+
+ public virtual DateTime UpdateTime { get; set; }
+
+ public virtual string? Remark { get; set; }
+
+ public virtual string? KeyIndex { get; set; }
+
+ ///
+ /// 按键类型0键盘1手柄
+ ///
+ public virtual int KeyType { get; set; }
+
+ ///
+ /// 游戏按键标识
+ ///
+ public virtual string? GameIdentification { get; set; }
+
+ ///
+ /// 是否可以拖动
+ ///
+ public virtual bool IsKeyDrag { get; set; }
+
+ ///
+ /// 是否按下锁定
+ ///
+ public virtual bool IsPressLock { get; set; }
+}
diff --git a/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_PlanKey_CBT.cs b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_PlanKey_CBT.cs
new file mode 100644
index 0000000..94dbec6
--- /dev/null
+++ b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_PlanKey_CBT.cs
@@ -0,0 +1,61 @@
+using System;
+
+namespace CloudGaming.Model.DbSqlServer.Db_Phone;
+
+///
+/// 方案按键配置表
+///
+public partial class T_PlanKey_CBT: MultiTenantEntity
+{
+ public T_PlanKey_CBT() { }
+
+ public virtual int Id { get; set; }
+
+ ///
+ /// 方案id
+ ///
+ public virtual int PlanId { get; set; }
+
+ ///
+ /// 键盘对应的ascii码
+ ///
+ public virtual string? KeyIndex { get; set; }
+
+ public virtual string? KeyName { get; set; }
+
+ ///
+ /// 默认图片id
+ ///
+ public virtual int ImageId { get; set; }
+
+ ///
+ /// 选中图片id
+ ///
+ public virtual int SelectImageId { get; set; }
+
+ ///
+ /// x坐标
+ ///
+ public virtual int X { get; set; }
+
+ ///
+ /// y坐标
+ ///
+ public virtual int Y { get; set; }
+
+ ///
+ /// w坐标或者宽度
+ ///
+ public virtual int W { get; set; }
+
+ ///
+ /// h坐标或者高度
+ ///
+ public virtual int H { get; set; }
+
+ public virtual DateTime CreateTime { get; set; }
+
+ public virtual DateTime UpdateTime { get; set; }
+
+ public virtual string? Remark { get; set; }
+}
diff --git a/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_Popup.cs b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_Popup.cs
new file mode 100644
index 0000000..4413986
--- /dev/null
+++ b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_Popup.cs
@@ -0,0 +1,95 @@
+using System;
+
+namespace CloudGaming.Model.DbSqlServer.Db_Phone;
+
+///
+/// 通用弹框配置
+///
+public partial class T_Popup: MultiTenantEntity
+{
+ public T_Popup() { }
+
+ public virtual int Id { get; set; }
+
+ ///
+ /// 弹框类型
+ ///
+ public virtual int Type { get; set; }
+
+ ///
+ /// 弹框名字
+ ///
+ public virtual string? Name { get; set; }
+
+ ///
+ /// 弹框背景图
+ ///
+ public virtual int? Btn_Bg { get; set; }
+
+ ///
+ /// 弹窗显示文字
+ ///
+ public virtual string? Text { get; set; }
+
+ ///
+ /// 是否启用
+ ///
+ public virtual bool? IsOnline { get; set; }
+
+ ///
+ /// 排序
+ ///
+ public virtual int? OrderId { get; set; }
+
+ ///
+ /// 创建时间
+ ///
+ public virtual DateTime? CreateTime { get; set; }
+
+ ///
+ /// 修改时间
+ ///
+ public virtual DateTime? UpdateTime { get; set; }
+
+ public virtual string? Desc { get; set; }
+
+ ///
+ /// 开始时间
+ ///
+ public virtual DateTime? StartTime { get; set; }
+
+ ///
+ /// 结束时间
+ ///
+ public virtual DateTime? EndTime { get; set; }
+
+ ///
+ /// 上线渠道号
+ ///
+ public virtual string? BossId { get; set; }
+
+ ///
+ /// 上线平台
+ ///
+ public virtual string? PlatformId { get; set; }
+
+ ///
+ /// 确认按钮图片
+ ///
+ public virtual int? Btn_OK { get; set; }
+
+ ///
+ /// 关闭按钮图片
+ ///
+ public virtual int? Btn_Close { get; set; }
+
+ ///
+ /// 内容图片Id
+ ///
+ public virtual int? ImageId_Text { get; set; }
+
+ ///
+ /// 扩展参数1
+ ///
+ public virtual string? Extend1 { get; set; }
+}
diff --git a/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_PopupBtn.cs b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_PopupBtn.cs
new file mode 100644
index 0000000..c6833c4
--- /dev/null
+++ b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_PopupBtn.cs
@@ -0,0 +1,58 @@
+using System;
+
+namespace CloudGaming.Model.DbSqlServer.Db_Phone;
+
+///
+/// 弹窗按钮
+///
+public partial class T_PopupBtn: MultiTenantEntity
+{
+ public T_PopupBtn() { }
+
+ public virtual int Id { get; set; }
+
+ ///
+ /// 动作
+ ///
+ public virtual string Action { get; set; } = null!;
+
+ ///
+ /// 背景图片
+ ///
+ public virtual int? Image { get; set; }
+
+ ///
+ /// X坐标
+ ///
+ public virtual int? X { get; set; }
+
+ ///
+ /// Y坐标
+ ///
+ public virtual int? Y { get; set; }
+
+ ///
+ /// 宽度
+ ///
+ public virtual int? Widht { get; set; }
+
+ ///
+ /// 高度
+ ///
+ public virtual int? Height { get; set; }
+
+ ///
+ /// 文本
+ ///
+ public virtual string? Text { get; set; }
+
+ ///
+ /// 按钮名称
+ ///
+ public virtual string? Name { get; set; }
+
+ ///
+ /// 延迟几秒显示按钮
+ ///
+ public virtual int? DelaySecond { get; set; }
+}
diff --git a/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_SevenDaySignIn_AwardCBT.cs b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_SevenDaySignIn_AwardCBT.cs
new file mode 100644
index 0000000..b06f17c
--- /dev/null
+++ b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_SevenDaySignIn_AwardCBT.cs
@@ -0,0 +1,28 @@
+using System;
+
+namespace CloudGaming.Model.DbSqlServer.Db_Phone;
+
+///
+/// 七日签到奖励配置表
+///
+public partial class T_SevenDaySignIn_AwardCBT: MultiTenantEntity
+{
+ public T_SevenDaySignIn_AwardCBT() { }
+
+ public virtual int Id { get; set; }
+
+ public virtual int SignInId { get; set; }
+
+ ///
+ /// 1钻石 2蘑菇币 3贡献值 4一日会员
+ ///
+ public virtual int AwardType { get; set; }
+
+ public virtual int AwardNum { get; set; }
+
+ public virtual DateTime CreateTime { get; set; }
+
+ public virtual DateTime UpdateTime { get; set; }
+
+ public virtual string? Remark { get; set; }
+}
diff --git a/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_SignTypes.cs b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_SignTypes.cs
new file mode 100644
index 0000000..0398c5a
--- /dev/null
+++ b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_SignTypes.cs
@@ -0,0 +1,30 @@
+using System;
+
+namespace CloudGaming.Model.DbSqlServer.Db_Phone;
+
+///
+/// 签到类型
+///
+public partial class T_SignTypes: MultiTenantEntity
+{
+ public T_SignTypes() { }
+
+ public virtual int Id { get; set; }
+
+ public virtual string? Name { get; set; }
+
+ ///
+ /// 签到类型
+ ///
+ public virtual int? Type { get; set; }
+
+ public virtual int? OrderId { get; set; }
+
+ public virtual bool? IsOnline { get; set; }
+
+ public virtual DateTime? UpdateTime { get; set; }
+
+ public virtual DateTime? CreateTime { get; set; }
+
+ public virtual string? Desc { get; set; }
+}
diff --git a/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_SysMessage.cs b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_SysMessage.cs
new file mode 100644
index 0000000..92e41b0
--- /dev/null
+++ b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_SysMessage.cs
@@ -0,0 +1,50 @@
+using System;
+
+namespace CloudGaming.Model.DbSqlServer.Db_Phone;
+
+///
+/// 系统公告
+///
+public partial class T_SysMessage: MultiTenantEntity
+{
+ public T_SysMessage() { }
+
+ public virtual int Id { get; set; }
+
+ ///
+ /// 消息Id
+ ///
+ public virtual int MessageId { get; set; }
+
+ ///
+ /// 名称
+ ///
+ public virtual string? Name { get; set; }
+
+ public virtual int? Type { get; set; }
+
+ ///
+ /// 内容
+ ///
+ public virtual string? Text { get; set; }
+
+ public virtual DateTime? UpdateTime { get; set; }
+
+ public virtual DateTime? CreateTime { get; set; }
+
+ public virtual string? Desc { get; set; }
+
+ public virtual int LvExp { get; set; }
+
+ public virtual int MushroomCoin { get; set; }
+
+ public virtual int DiamondNum { get; set; }
+
+ public virtual int TemporaryMemberDay { get; set; }
+
+ public virtual DateTime StartTime { get; set; }
+
+ public virtual DateTime EndTime { get; set; }
+
+ public virtual int ReceiveType { get; set; }
+}
diff --git a/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_UITypes.cs b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_UITypes.cs
new file mode 100644
index 0000000..7017f20
--- /dev/null
+++ b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_UITypes.cs
@@ -0,0 +1,27 @@
+using System;
+
+namespace CloudGaming.Model.DbSqlServer.Db_Phone;
+
+///
+/// 位置大小类型列表
+///
+public partial class T_UITypes: MultiTenantEntity
+{
+ public T_UITypes() { }
+
+ public virtual int Id { get; set; }
+
+ public virtual int? Type { get; set; }
+
+ public virtual string? Name { get; set; }
+
+ public virtual bool? IsOnline { get; set; }
+
+ public virtual int? OrderId { get; set; }
+
+ public virtual DateTime? UpdateTime { get; set; }
+
+ public virtual DateTime? CreateTime { get; set; }
+
+ public virtual string? Desc { get; set; }
+}
diff --git a/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_UIs.cs b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_UIs.cs
new file mode 100644
index 0000000..1a33660
--- /dev/null
+++ b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_UIs.cs
@@ -0,0 +1,48 @@
+using System;
+
+namespace CloudGaming.Model.DbSqlServer.Db_Phone;
+
+///
+/// UI集合
+///
+public partial class T_UIs: MultiTenantEntity
+{
+ public T_UIs() { }
+
+ public virtual int Id { get; set; }
+
+ public virtual int UIId { get; set; }
+
+ public virtual string? Name { get; set; }
+
+ public virtual int? Type { get; set; }
+
+ public virtual int? x { get; set; }
+
+ public virtual int? y { get; set; }
+
+ public virtual int? w { get; set; }
+
+ public virtual int? h { get; set; }
+
+ public virtual DateTime? UpdateTime { get; set; }
+
+ public virtual DateTime? CreateTime { get; set; }
+
+ public virtual string? Desc { get; set; }
+
+ ///
+ /// 未选中图片id
+ ///
+ public virtual int ImageId { get; set; }
+
+ ///
+ /// 选中图片id
+ ///
+ public virtual int SelectedImage { get; set; }
+
+ ///
+ /// 放大倍数
+ ///
+ public virtual double Scale { get; set; }
+}
diff --git a/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_Videos.cs b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_Videos.cs
new file mode 100644
index 0000000..d529513
--- /dev/null
+++ b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_Videos.cs
@@ -0,0 +1,33 @@
+using System;
+
+namespace CloudGaming.Model.DbSqlServer.Db_Phone;
+
+///
+/// 视频列表
+///
+public partial class T_Videos: MultiTenantEntity
+{
+ public T_Videos() { }
+
+ public virtual int Id { get; set; }
+
+ public virtual int VideoId { get; set; }
+
+ public virtual string? Name { get; set; }
+
+ public virtual int? Type { get; set; }
+
+ public virtual string? Url { get; set; }
+
+ public virtual int? ImageId { get; set; }
+
+ public virtual int? W { get; set; }
+
+ public virtual int? H { get; set; }
+
+ public virtual DateTime? UpdateTime { get; set; }
+
+ public virtual DateTime? CreateTime { get; set; }
+
+ public virtual string? Desc { get; set; }
+}
diff --git a/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/efcore-gen.md b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/efcore-gen.md
index 1e97ef0..32a41c9 100644
--- a/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/efcore-gen.md
+++ b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/efcore-gen.md
@@ -3,4 +3,8 @@
```sh
--user
dotnet ef dbcontext scaffold "Server=192.168.1.17;Database=CloudGamingUser;User Id=sa;Password=Dbt@com@123;TrustServerCertificate=true;" Microsoft.EntityFrameworkCore.SqlServer -o DbSqlServer/Db_User/ --use-database-names --no-pluralize --force
+
+--CloudGamingPhone
+dotnet ef dbcontext scaffold "Server=192.168.1.17;Database=CloudGamingPhone;User Id=sa;Password=Dbt@com@123;TrustServerCertificate=true;" Microsoft.EntityFrameworkCore.SqlServer -o DbSqlServer/Db_Phone/ --use-database-names --no-pluralize --force
+
```
\ No newline at end of file