mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-04-22 18:52:50 +08:00
- 修复 GroupBy + WithTempQuery + .Key.xx + 特性名与实体不同 + 三元表达式解析问题;
This commit is contained in:
parent
29943a05c3
commit
f117b1452e
@ -600,12 +600,16 @@ namespace base_entity
|
|||||||
BaseEntity.Initialization(fsql, () => _asyncUow.Value);
|
BaseEntity.Initialization(fsql, () => _asyncUow.Value);
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
fsql.GlobalFilter.Apply<User1>("test01", a => a.IsDeleted == false);
|
var list0x1sql = fsql.Select<OrderLine22x, Product22x>()
|
||||||
|
.InnerJoin((l, p) => l.ProductId == p.ID)
|
||||||
var updatejoin031sql = fsql.Update<User1>()
|
.GroupBy((l, p) => new { p.ID, l.ShopType })
|
||||||
.Join<UserGroup>((a, b) => a.GroupId == b.Id)
|
.WithTempQuery(a => new {
|
||||||
.Set((a, b) => b.GroupName == a.Username + "b.groupname")
|
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();
|
.ToSql();
|
||||||
|
Console.WriteLine(list0x1sql);
|
||||||
|
|
||||||
fsql.Delete<TypeHandler01>().Where("1=1").ExecuteAffrows();
|
fsql.Delete<TypeHandler01>().Where("1=1").ExecuteAffrows();
|
||||||
FreeSql.Internal.Utils.TypeHandlers.TryAdd(typeof(TestIdAndIdentity), new String_TestIdAndIdentity());
|
FreeSql.Internal.Utils.TypeHandlers.TryAdd(typeof(TestIdAndIdentity), new String_TestIdAndIdentity());
|
||||||
@ -2631,3 +2635,24 @@ class String_TestIdAndIdentity : TypeHandler<TestIdAndIdentity>
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
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; }
|
||||||
|
}
|
||||||
|
@ -733,6 +733,15 @@
|
|||||||
<param name="modelBuilder"></param>
|
<param name="modelBuilder"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:FreeSqlDbContextExtensions.ApplyConfigurationsFromAssembly(FreeSql.ICodeFirst,System.Reflection.Assembly,System.Func{System.Type,System.Boolean})">
|
||||||
|
<summary>
|
||||||
|
根据Assembly扫描所有继承IEntityTypeConfiguration<T>的配置类
|
||||||
|
</summary>
|
||||||
|
<param name="codeFirst"></param>
|
||||||
|
<param name="assembly"></param>
|
||||||
|
<param name="predicate"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="M:FreeSqlDbContextExtensions.CreateDbContext(IFreeSql)">
|
<member name="M:FreeSqlDbContextExtensions.CreateDbContext(IFreeSql)">
|
||||||
<summary>
|
<summary>
|
||||||
创建普通数据上下文档对象
|
创建普通数据上下文档对象
|
||||||
|
@ -89,6 +89,19 @@ namespace FreeSql.Internal
|
|||||||
field.Append(_common.FieldAsAlias(parent.DbNestedField));
|
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<ExpTSC> 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 解决
|
Func<ExpTSC> 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)
|
switch (exp.NodeType)
|
||||||
@ -542,6 +555,7 @@ namespace FreeSql.Internal
|
|||||||
field.Append(", ").Append(parent.DbField);
|
field.Append(", ").Append(parent.DbField);
|
||||||
LocalSetFieldAlias(ref index, false);
|
LocalSetFieldAlias(ref index, false);
|
||||||
if (parent.CsType == null && exp.Type.IsValueType) parent.CsType = exp.Type;
|
if (parent.CsType == null && exp.Type.IsValueType) parent.CsType = exp.Type;
|
||||||
|
if (isGroupAddField == false && isGroupAddFieldProvider != null) isGroupAddFieldProvider._addFieldAlias = true;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
public object ReadAnonymous(ReadAnonymousTypeInfo parent, DbDataReader dr, ref int index, bool notRead, ReadAnonymousDbValueRef dbValue, int rowIndex,
|
public object ReadAnonymous(ReadAnonymousTypeInfo parent, DbDataReader dr, ref int index, bool notRead, ReadAnonymousDbValueRef dbValue, int rowIndex,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user