diff --git a/Src/Asp.Net/SqlServerTest/SqlServerTest.csproj b/Src/Asp.Net/SqlServerTest/SqlServerTest.csproj index 85ac0bd30..2fda49e26 100644 --- a/Src/Asp.Net/SqlServerTest/SqlServerTest.csproj +++ b/Src/Asp.Net/SqlServerTest/SqlServerTest.csproj @@ -97,6 +97,12 @@ + + + + + + diff --git a/Src/Asp.Net/SqlServerTest/UnitTest/Main.cs b/Src/Asp.Net/SqlServerTest/UnitTest/Main.cs index 30ddfc685..175c6f48b 100644 --- a/Src/Asp.Net/SqlServerTest/UnitTest/Main.cs +++ b/Src/Asp.Net/SqlServerTest/UnitTest/Main.cs @@ -31,6 +31,7 @@ namespace OrmTest } public static void Init() { + UnitInsertNavOneToOne.Init(); CrossDatabase01.Init(); CrossDatabase02.Init(); CrossDatabase03.Init(); diff --git a/Src/Asp.Net/SqlServerTest/UnitTest/Models/EntityBase.cs b/Src/Asp.Net/SqlServerTest/UnitTest/Models/EntityBase.cs new file mode 100644 index 000000000..0d4a590e9 --- /dev/null +++ b/Src/Asp.Net/SqlServerTest/UnitTest/Models/EntityBase.cs @@ -0,0 +1,106 @@ + +using SqlSugar; +using System; +/// +/// 框架实体基类Id +/// +public abstract class EntityBaseId +{ + /// + /// 雪花Id + /// + [SugarColumn(ColumnDescription = "Id", IsPrimaryKey = true, IsIdentity = false)] + public virtual long Id { get; set; } +} + + + +/// +/// 框架实体基类 +/// +public abstract class EntityBase : EntityBaseId +{ + /// + /// 创建时间 + /// + [SugarColumn(ColumnDescription = "创建时间")] + public virtual DateTime? CreateTime { get; set; } + + /// + /// 更新时间 + /// + [SugarColumn(ColumnDescription = "更新时间")] + public virtual DateTime? UpdateTime { get; set; } + + /// + /// 创建者Id + /// + [SugarColumn(ColumnDescription = "创建者Id")] + public virtual long? CreateUserId { get; set; } = 1; + + /// + /// 修改者Id + /// + [SugarColumn(ColumnDescription = "修改者Id")] + public virtual long? UpdateUserId { get; set; } = 1; + + /// + /// 软删除 + /// + [SugarColumn(ColumnDescription = "软删除")] + public virtual bool IsDelete { get; set; } = false; + + + +} + + + +/// +/// 业务实体基类 +/// +public abstract class BaseModel : EntityBase +{ + + [SugarColumn(ColumnDescription = "Id", IsPrimaryKey = true, IsIdentity = true)] + public override long Id { get; set; } + + /// + /// 创建时间 + /// + [SugarColumn(ColumnDescription = "创建时间")] + public override DateTime? CreateTime { get; set; } + + /// + /// 更新时间 + /// + [SugarColumn(ColumnDescription = "更新时间")] + public override DateTime? UpdateTime { get; set; } + + /// + /// 创建者Id + /// + [SugarColumn(ColumnDescription = "创建者Id")] + public override long? CreateUserId { get; set; } = 1; + + /// + /// 修改者Id + /// + [SugarColumn(ColumnDescription = "修改者Id")] + public override long? UpdateUserId { get; set; } = 1; + + /// + /// 软删除 + /// + [SugarColumn(ColumnDescription = "软删除")] + public override bool IsDelete { get; set; } = false; + + /// + /// 排序 + /// + [SugarColumn(ColumnDescription = "排序")] + public virtual long? Order { get; set; } = 1; + + + +} diff --git a/Src/Asp.Net/SqlServerTest/UnitTest/Models/SysField.cs b/Src/Asp.Net/SqlServerTest/UnitTest/Models/SysField.cs new file mode 100644 index 000000000..33607fdbb --- /dev/null +++ b/Src/Asp.Net/SqlServerTest/UnitTest/Models/SysField.cs @@ -0,0 +1,37 @@ +using SqlSugar; + +/// +/// 模型实用字段 +/// +[SugarTable("WebX_Dev_Field", "功能模型字段")] +public class SysField:BaseModel +{ + /// + /// 功能模型Id + /// + public long ModelId { get; set; } + + /// + /// 数据库名称 + /// + public string FieldName { get; set; } + /// + /// 字段类型长度 + /// + public int TypeLength { get; set; } + /// + /// 类型名称 + /// + public string FieldTypeName { get; set; } + /// + /// 字段名称 + /// + public string FieldAlias { get; set; } = "a"; + + + + + + + +} diff --git a/Src/Asp.Net/SqlServerTest/UnitTest/Models/SysFormField.cs b/Src/Asp.Net/SqlServerTest/UnitTest/Models/SysFormField.cs new file mode 100644 index 000000000..c6ae0817f --- /dev/null +++ b/Src/Asp.Net/SqlServerTest/UnitTest/Models/SysFormField.cs @@ -0,0 +1,85 @@ + + +using SqlSugar; + +/// +/// 模型实用字段 +/// +[SugarTable("WebX_Dev_Form_Field", "表单字段")] +public class SysFormField : BaseModel +{ + /// + /// 模型表单 + /// + public long FormId { get; set; } + /// + /// 基础字段 + /// + public long FieldId { get; set; } + /// + /// 功能模型Id + /// + public long ModelId { get; set; } + + /// + /// 数据库名称 + /// + public string FieldName { get; set; } + + /// + /// 字段类型长度 + /// + public int TypeLength { get; set; } + /// + /// 类型名称 + /// + public string FieldTypeName { get; set; } + /// + /// 字段名称 + /// + public string FieldAlias { get; set; } + /// + /// 字段类型 + /// + public int FieldType { get; set; } + /// + /// 是否允许为空 + /// + public bool IsAllowNull { get; set; } + /// + /// 是否唯一 + /// + public bool IsOnly { get; set; } + /// + /// 是否只读 + /// + public bool IsReadOnly { get; set; } + /// + /// 默认值 + /// + public string DefaultValue { get; set; } + /// + /// 最大长度 + /// + public int MaxLength { get; set; } + /// + /// 是否显示在列表 + /// + public bool IsListShow { get; set; } + /// + /// 是否加入搜索 + /// + public bool IsSearchShow { get; set; } + + /// + /// 功能字段 + /// + [Navigate(NavigateType.OneToOne, nameof(FieldId))] + public SysField SysField { get; set; } + + /// + /// 文件 + /// + [Navigate(NavigateType.OneToOne, nameof(Id), nameof(SysFormUpload.Form_Field_Id))] + public SysFormUpload FormUpload { get; set; } +} diff --git a/Src/Asp.Net/SqlServerTest/UnitTest/Models/SysFormFieldInput.cs b/Src/Asp.Net/SqlServerTest/UnitTest/Models/SysFormFieldInput.cs new file mode 100644 index 000000000..7d7cfff82 --- /dev/null +++ b/Src/Asp.Net/SqlServerTest/UnitTest/Models/SysFormFieldInput.cs @@ -0,0 +1,205 @@ +using System; +using System.ComponentModel.DataAnnotations; +using System.Collections.Generic; +using SqlSugar; + +namespace Admin.NET.Application +{ + /// + /// 表单字段输入参数 + /// + public class SysFormFieldInput + { + /// + /// 模型表单 + /// + public virtual long FormId { get; set; } + + /// + /// 基础字段 + /// + public virtual long FieldId { get; set; } + + /// + /// 功能模型 + /// + public virtual long ModelId { get; set; } + + /// + /// 数据库名称 + /// + public virtual string FieldName { get; set; } + + /// + /// 字段类型长度 + /// + public virtual int TypeLength { get; set; } + + /// + /// 类型名称 + /// + public virtual string FieldTypeName { get; set; } + + /// + /// 字段名称 + /// + public virtual string FieldAlias { get; set; } + + /// + /// 字段类型 + /// + public virtual int FieldType { get; set; } + + /// + /// 是否允许为空 + /// + public virtual bool IsAllowNull { get; set; } + + /// + /// 是否唯一 + /// + public virtual bool IsOnly { get; set; } + + /// + /// 是否只读 + /// + public virtual bool IsReadOnly { get; set; } + + /// + /// 默认值 + /// + public virtual string DefaultValue { get; set; } + + /// + /// 最大长度 + /// + public virtual int MaxLength { get; set; } + + /// + /// 是否显示在列表 + /// + public virtual bool IsListShow { get; set; } + + /// + /// 是否加入搜索 + /// + public virtual bool IsSearchShow { get; set; } + + /// + /// 提示文字 + /// + public virtual string TipText { get; set; } + + /// + /// 验证错误提示文字 + /// + public virtual string ValidateText { get; set; } + + /// + /// 验证类型 + /// + public virtual string ValidateType { get; set; } + + /// + /// 验证正则 + /// + public virtual string ValidateExpression { get; set; } + + /// + /// 排序 + /// + public virtual long Order { get; set; } + + } + + public class AddSysFormFieldInput : SysFormFieldInput + { + /// + /// 模型表单 + /// + [Required(ErrorMessage = "模型表单不能为空")] + public override long FormId { get; set; } + + /// + /// 功能模型 + /// + [Required(ErrorMessage = "功能模型不能为空")] + public override long ModelId { get; set; } + /// + /// 上传模式 + /// + public int UploadMode { get; set; } + /// + /// 是否水印 + /// + public bool IsWaterMark { get; set; } + + /// + /// 文件扩展名 + /// + public string FileExts { get; set; } = "jpg|png|gif|bmp"; + /// + /// 1省/2市/3区 + /// + public int ShowLevel { get; set; } = 1; + /// + /// 创建时间 + /// + [SugarColumn(ColumnDescription = "创建时间")] + public DateTime? CreateTime { get; set; } + + /// + /// 更新时间 + /// + [SugarColumn(ColumnDescription = "更新时间")] + public DateTime? UpdateTime { get; set; } + + + + /// + /// 创建者Id + /// + [SugarColumn(ColumnDescription = "创建者Id")] + public long? CreateUserId { get; set; } + + /// + /// 修改者Id + /// + [SugarColumn(ColumnDescription = "修改者Id")] + public long? UpdateUserId { get; set; } + + /// + /// 软删除 + /// + [SugarColumn(ColumnDescription = "软删除")] + public bool IsDelete { get; set; } = false; + + + + } + + public class DeleteSysFormFieldInput + { + /// + /// Id + /// + [Required(ErrorMessage = "Id不能为空")] + public long Id { get; set; } + + } + + public class UpdateSysFormFieldInput : SysFormFieldInput + { + /// + /// Id + /// + [Required(ErrorMessage = "Id不能为空")] + public long Id { get; set; } + + } + + public class QueryeSysFormFieldInput : DeleteSysFormFieldInput + { + + } +} diff --git a/Src/Asp.Net/SqlServerTest/UnitTest/Models/SysFormUpload.cs b/Src/Asp.Net/SqlServerTest/UnitTest/Models/SysFormUpload.cs new file mode 100644 index 000000000..c6d3cce6e --- /dev/null +++ b/Src/Asp.Net/SqlServerTest/UnitTest/Models/SysFormUpload.cs @@ -0,0 +1,16 @@ + +using SqlSugar; + + +/// +/// 文件字段 +/// +[SugarTable("WebX_Dev_Form_Upload", "文件字段")] +public class SysFormUpload : BaseModel +{ + public long FormId { get; set; } + public long Form_Field_Id { get; set; } + public long UploadMode { get; set; } + public bool IsWaterMark { get; set; } + public string FileExts { get; set; } = ""; +} diff --git a/Src/Asp.Net/SqlServerTest/UnitTest/UnitInsertNavOneToOne.cs b/Src/Asp.Net/SqlServerTest/UnitTest/UnitInsertNavOneToOne.cs new file mode 100644 index 000000000..dc1b45565 --- /dev/null +++ b/Src/Asp.Net/SqlServerTest/UnitTest/UnitInsertNavOneToOne.cs @@ -0,0 +1,61 @@ +using Admin.NET.Application; +using SqlSugar; +using System; +using System.Data; + public class UnitInsertNavOneToOne +{ + public static void Init() + { + var db = new SqlSugarScope(new SqlSugar.ConnectionConfig() + { + ConnectionString = "server=.;uid=sa;pwd=sasa;database=Question", + DbType = SqlSugar.DbType.SqlServer, + IsAutoCloseConnection = true + }); + db.DbMaintenance.CreateDatabase(); + //建表 + if (!db.DbMaintenance.IsAnyTable("SysField", false) && + !db.DbMaintenance.IsAnyTable("SysFormField", false) && + !db.DbMaintenance.IsAnyTable("SysFormUpload", false)) + { + db.CodeFirst.InitTables(); + db.CodeFirst.InitTables(); + db.CodeFirst.InitTables(); + } + + + //用例代码 + + SysFormField addSysFormFieldInput = new SysFormField() + { + FieldId = 0, + Order = 0, + DefaultValue = "", + FieldName = "", + + FieldTypeName = "", + FieldAlias = "", + + UpdateUserId=1, + CreateUserId=1, + IsDelete=false, + FormUpload=new SysFormUpload() { CreateUserId=1, CreateTime =DateTime.Now,UpdateTime=DateTime.Now}, + SysField=new SysField() { Order=1, CreateUserId=2, FieldTypeName ="a", FieldName="a", UpdateTime=DateTime.Now, CreateTime=DateTime.Now}, + CreateTime=DateTime.Now, + UpdateTime=DateTime.Now + + }; + + var entity = addSysFormFieldInput; + + db.InsertNav(entity) + .Include(x => x.SysField) + .Include(x => x.FormUpload) + .ExecuteCommand(); + + Console.WriteLine("用例跑完"); + Console.ReadKey(); + } + + +}