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();
+ }
+
+
+}