Freesql ORM 多条件枚举Sum
反射枚举 desc 建拉姆达查询 sum
/// <summary>
/// 创建lambda表达式:p=>p.propertyName
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="propertyName"></param>
/// <returns></returns>
public static Expression<Func<T, int>> CreatePropertyName<T>(string propertyName)
{
ParameterExpression parameter = Expression.Parameter(typeof(T), "p");//创建参数p
MemberExpression member = Expression.PropertyOrField(parameter, propertyName);
return Expression.Lambda<Func<T, int>>( member , parameter);
}
定义
public enum sexID
{
[Description("Id")]
Id_1 ,
[Description("Id2")]
Id_2,
[Description("Id3")]
Id_3
}
[Index("Idu001", "Idu", true)]
public class Item
{
[Column(IsIdentity = true, IsPrimary = true)]
[DisplayName("序号")]
public int Id { get; set; }
public int Id2 { get; set; }
public int Id3 { get; set; }
[DisplayName("名称")]
public string Text { get; set; }
[DisplayName("描述")]
public string Description { get; set; }
[Column(IsPrimary = true)]
[DisplayName("序号U")]
public Guid Idu { get; set; }
}
代码
Expression<Func<Item, int>> sum = null;
sum = LambadaExpression.CreatePropertyName<Item>("Id");
var sums=fsql.Select<Item>().Sum(sum);//SELECT sum(a."Id") as1 FROM "Item" a
sum = LambadaExpression.CreatePropertyName<Item>(sexID.Id_2.ToDescriptionOrString());
var sums2=fsql.Select<Item>().Sum(sum);//SELECT sum(a."Id2") as1 FROM "Item" a
sum = LambadaExpression.CreatePropertyName<Item>(sexID.Id_3.ToDescriptionOrString());
var sums3=fsql.Select<Item>().Sum(sum);//SELECT sum(a."Id3") as1 FROM "Item" a
关联项目
FreeSql QQ群:4336577
BA & Blazor QQ群:795206915
Maui Blazor 中文社区 QQ群:645660665
知识共享许可协议
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名AlexChow(包含链接: https://github.com/densen2014 ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系 。
转载声明
本文来自博客园,作者:周创琳 AlexChow,转载请注明原文链接:https://www.cnblogs.com/densen2014/p/16934641.html
AlexChow
今日头条 | 博客园 | 知乎 | Gitee | GitHub
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· 易语言 —— 开山篇