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(); context.UpdateNav(result).Include(s => s.DeliveryDetails).ThenInclude(s => s.DeliveryDetailItems).ExecuteCommand(); var result2 = 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"); } if (!result2.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; } } } }