diff --git a/Examples/base_entity/Program.cs b/Examples/base_entity/Program.cs index 26983509..496bfd37 100644 --- a/Examples/base_entity/Program.cs +++ b/Examples/base_entity/Program.cs @@ -600,12 +600,16 @@ namespace base_entity BaseEntity.Initialization(fsql, () => _asyncUow.Value); #endregion - fsql.GlobalFilter.Apply("test01", a => a.IsDeleted == false); - - var updatejoin031sql = fsql.Update() - .Join((a, b) => a.GroupId == b.Id) - .Set((a, b) => b.GroupName == a.Username + "b.groupname") - .ToSql(); + var list0x1sql = fsql.Select() +.InnerJoin((l, p) => l.ProductId == p.ID) +.GroupBy((l, p) => new { p.ID, l.ShopType }) +.WithTempQuery(a => new { + a.Key.ID, + Money2 = a.Key.ShopType, + Money = a.Key.ShopType == 1 ? a.Value.Item1.Price * a.Value.Item1.Amount : a.Value.Item1.Price * a.Value.Item1.Amount * 1.1m +}) +.ToSql(); + Console.WriteLine(list0x1sql); fsql.Delete().Where("1=1").ExecuteAffrows(); FreeSql.Internal.Utils.TypeHandlers.TryAdd(typeof(TestIdAndIdentity), new String_TestIdAndIdentity()); @@ -2631,3 +2635,24 @@ class String_TestIdAndIdentity : TypeHandler } } } +public partial class OrderLine22x +{ + + public string Id { get; set; } + public string OrderId { get; set; } + + public string ShopId { get; set; } + [JsonProperty, Column(Name = "Shop_Type")] + public int? ShopType { get; set; } + public string ProductId { get; set; } + public decimal Price { get; set; } + public decimal Amount { get; set; } +} +[JsonObject(MemberSerialization.OptIn), Table(Name = "T_Product22x", DisableSyncStructure = true)] + +public partial class Product22x +{ + public string ID { get; set; } + public string Name { get; set; } + public string Model { get; set; } +} diff --git a/FreeSql.DbContext/FreeSql.DbContext.xml b/FreeSql.DbContext/FreeSql.DbContext.xml index 594fbad3..537315e2 100644 --- a/FreeSql.DbContext/FreeSql.DbContext.xml +++ b/FreeSql.DbContext/FreeSql.DbContext.xml @@ -733,6 +733,15 @@ + + + 根据Assembly扫描所有继承IEntityTypeConfiguration<T>的配置类 + + + + + + 创建普通数据上下文档对象 diff --git a/FreeSql/Internal/CommonExpression.cs b/FreeSql/Internal/CommonExpression.cs index f7c401e1..d597873d 100644 --- a/FreeSql/Internal/CommonExpression.cs +++ b/FreeSql/Internal/CommonExpression.cs @@ -89,6 +89,19 @@ namespace FreeSql.Internal field.Append(_common.FieldAsAlias(parent.DbNestedField)); } } + var isGroupAddField = true; + var isGroupAddFieldProvider = diymemexp as SelectGroupingProvider; + if (isGroupAddFieldProvider?._addFieldAlias == true) + { + switch (exp.NodeType) + { + case ExpressionType.Conditional: + case ExpressionType.Call: + isGroupAddField = false; + isGroupAddFieldProvider._addFieldAlias = false; + break; + } + } Func getTSC = () => new ExpTSC { _tables = _tables, _tableRule = _tableRule, diymemexp = diymemexp, tbtype = SelectTableInfoType.From, isQuoteName = true, isDisableDiyParse = false, style = ExpressionStyle.Where, whereGlobalFilter = whereGlobalFilter, dbParams = select?._params }; //#462 添加 DbParams 解决 switch (exp.NodeType) @@ -542,6 +555,7 @@ namespace FreeSql.Internal field.Append(", ").Append(parent.DbField); LocalSetFieldAlias(ref index, false); if (parent.CsType == null && exp.Type.IsValueType) parent.CsType = exp.Type; + if (isGroupAddField == false && isGroupAddFieldProvider != null) isGroupAddFieldProvider._addFieldAlias = true; return false; } public object ReadAnonymous(ReadAnonymousTypeInfo parent, DbDataReader dr, ref int index, bool notRead, ReadAnonymousDbValueRef dbValue, int rowIndex,