diff --git a/Src/Asp.Net/SqlServerTest/SqlServerTest.csproj b/Src/Asp.Net/SqlServerTest/SqlServerTest.csproj index e22e10974..944790b7d 100644 --- a/Src/Asp.Net/SqlServerTest/SqlServerTest.csproj +++ b/Src/Asp.Net/SqlServerTest/SqlServerTest.csproj @@ -97,6 +97,7 @@ + diff --git a/Src/Asp.Net/SqlServerTest/UnitTest/Main.cs b/Src/Asp.Net/SqlServerTest/UnitTest/Main.cs index 61cb32fc9..4df9a2acd 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() { + UInsertNav0adsf.Init(); UExp.Init(); USelectSinleDTO.Init(); UCustom024.Init(); diff --git a/Src/Asp.Net/SqlServerTest/UnitTest/UInsertNav0adsf.cs b/Src/Asp.Net/SqlServerTest/UnitTest/UInsertNav0adsf.cs new file mode 100644 index 000000000..9ef0abe89 --- /dev/null +++ b/Src/Asp.Net/SqlServerTest/UnitTest/UInsertNav0adsf.cs @@ -0,0 +1,132 @@ + +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq.Expressions; +using System.Text; +using System.Linq; + +namespace OrmTest +{ + public class UInsertNav0adsf + { + + public static void Init() + { + + var context = NewUnitTest.Db; + context.Aop.DataExecuting = (oldValue, entityInfo) => + { + if (entityInfo.PropertyName == "Iden" && entityInfo.OperationType == DataFilterType.InsertByObject) + { + entityInfo.SetValue(Guid.NewGuid().ToString("N").ToUpper()); + } + }; + + //建表 + if (!context.DbMaintenance.IsAnyTable("DELIVERY_INFO_1", false)) + { + context.CodeFirst.InitTables(); + } + //建表 + if (!context.DbMaintenance.IsAnyTable("DELIVERY_DETAIL_1", false)) + { + context.CodeFirst.InitTables(); + } + //建表 + if (!context.DbMaintenance.IsAnyTable("DELIVERY_DETAIL_ITEM_1", false)) + { + context.CodeFirst.InitTables(); + } + context.DbMaintenance.TruncateTable(); + + Delivery delivery = new Delivery + { + DeliveryNo = "1", + DeliveryDetails = new List { + new DeliveryDetail() { DeliveryDetailItems= new List{ new DeliveryDetailItem {FieldId="00",FieldValue="00" } } } + } + }; + context.InsertNav(delivery).Include(s => s.DeliveryDetails).ThenInclude(s => s.DeliveryDetailItems).ExecuteCommand(); + var result = context.Queryable().Where(s => s.DeliveryNo == "1").Includes(s => s.DeliveryDetails, dd => dd.DeliveryDetailItems).First(); + + if (!result.DeliveryDetails.Any(z => z.DeliveryDetailItems.Any())) + { + throw new Exception("unit error"); + } + } + + + /// + /// + /// + [SugarTable("DELIVERY_INFO_1")] + public partial class Delivery : Base + { + /// + /// 送货单号 + /// + [SugarColumn(ColumnName = "DELIVERY_NO")] + public string DeliveryNo { get; set; } + + [SugarColumn(IsIgnore = true)] + [Navigate(NavigateType.OneToMany, nameof(DeliveryDetail.DeliveryNo), nameof(DeliveryNo))] + public List DeliveryDetails { get; set; } + + } + + + /// + /// + /// + [SugarTable("DELIVERY_DETAIL_1")] + public partial class DeliveryDetail : Base + { + public DeliveryDetail() + { + } + + /// + /// 送货单号 + /// + [SugarColumn(ColumnName = "DELIVERY_NO")] + public string DeliveryNo { get; set; } + + + [SugarColumn(IsIgnore = true)] + [Navigate(NavigateType.OneToMany, nameof(DeliveryDetailItem.DeliveryDetailIden))] + public List DeliveryDetailItems { get; set; } + + } + [SugarTable("DELIVERY_DETAIL_ITEM_1")] + public partial class DeliveryDetailItem : Base + { + /// + /// 送货单明细IDEN + /// + [SugarColumn(ColumnName = "DELIVERY_DETAIL_IDEN")] + public string DeliveryDetailIden { get; set; } + + /// + /// 字段编号 + /// + [SugarColumn(ColumnName = "FIELD_ID")] + public string FieldId { get; set; } + + /// + /// 字段值 + /// + [SugarColumn(ColumnName = "FIELD_VALUE")] + public string FieldValue { get; set; } + } + + public class Base + { + /// + /// 主键 + /// + [SugarColumn(IsPrimaryKey = true, ColumnName = "IDEN", ColumnDescription = "主键", ColumnDataType = "VARCHAR(50)")] + public string Iden { get; set; } + } + } +}