kitlau
kitlau

kitlau's blog

expression trees


Linq 和 lambda 的区别是什么?

这篇文章探讨了Linq和Lambda表达式之间的区别与联系,并反思了开发者对基础知识的忽视现象。作者通过代码示例说明,Linq(Language-Integrated Query)是一种查询库,提供多种语法形式,而Lambda是创建匿名委托的简洁方式,常用于Linq的方法语法中。两者虽紧密相关,但本质不同:Linq是一个功能库,而Lambda是一种表达式形式。文章指出,开发者往往因教材和文档中的同时出现而将它们混淆,并强调掌握基础知识的重要性。最后,作者建议读者探索表达式树的高级应用,并提出问题:你是否真正理解了这些基础概念,还是仅停留在表面应用上?这引发对学习方式和深度思考的反思。--DeepSeek

C# linq lambda expressions expression trees entity relationship mapping Method Syntax

EF Core 动态构建表达式树简化 DDD 值对象的比较

这篇文章主要介绍了如何通过构建动态表达式树来生成复杂的SQL查询语句。作者详细讲解了使用`ValueObjectEqualHelper`方法的实现细节,包括如何处理原始类型和非原始类型的相等比较,以及如何将多个属性条件组合成一个逻辑与(AndAlso)的表达式树。最终生成的SQL语句正确,并且能够准确返回预期的结果。文章还提供了相关的代码示例和注释,帮助读者更好地理解动态表达式树的构建过程,并建议进一步阅读作者之前关于C#表达式树的文章以加深理解。--DeepSeek

.NET C# EF Core expression trees Entity Framework Core Dynamic Condition Generation

手把手构建 C# 表达式树

这篇文章详细介绍了如何手动构建一个表达式树以筛选年龄大于18岁的人,包括创建参数、成员访问、比较运算符以及最终的Lambda表达式。作者展示了如何使用这个表达式在代码中过滤列表,并通过控制台输出结果。文章还讨论了手动编译表达式的必要性,提到如果使用`IQueryable`则不需要此步骤,并预告了两篇关于将表达式树应用于EF Core的文章,分别涉及动态构建表达式树来简化值对象比较和为实体类属性设置过滤器,而无需在每个配置中手动设置。--DeepSeek

.NET C# EF Core expression trees Dynamic Expression Linq Expressions

如何使用 CSharp 表达式树?

这篇文章介绍了如何手动构建C#表达式树以解决硬编码问题,并通过一个示例详细讲解了如何创建参数节点、成员访问节点以及组合成Lambda表达式的过程。文章还提到了表达式树在领域驱动设计中的潜在应用,但指出动态构建表达式树的代码可能较难理解,因此建议仅在必要时使用。最后,作者提供了相关的官方文档链接以供进一步学习。--DeepSeek

C# Functional Programming lambda expressions expression trees Dynamic Code Generation Property Access

  • 1