c# - 设计复杂 LINQ 代码的建议

标签 c# .net linq

您对在项目中设计 linq 代码有何建议? 特别是,我对大型复杂 linq 查询的代码设计很感兴趣?

例如,您知道,您需要编写很多庞大的 linq 东西,也许您的某些代码会有重复的部分,也许没有,您需要:

  1. 使代码易于支持 - 意思是,如果您需要更改某些内容。 - 你正在改变一件事,不是很多

  2. 使代码易于阅读 - 意味着,如果您需要查找某些内容 - 您可以轻松地做到这一点。

你可以使用你的例子,也许你的练习。也许是您在任何地方看到的一些模式 - 任何东西。

说到 linq,我指的是任何 linq、linq to sql、linq to objects、linq to xml 等。

最佳答案

您可以为您的对象编写扩展;

主要代码;

IQuerable itemList = _coreRepository.GetSomeItems()
                .WithStates(OperationIdentity.SendToSomeWhere)
                .BetweenDates(StartDate, EndDate);

扩展;

public static IQueryable<SomeObject> BetweenDates(this IQueryable<SomeObject> query, DateTime startDate, DateTime endDate)
        {
            return from p in query
                   where p.CompletedDate >= startDate && p.CompletedDate < endDate
                   select p;
        }

关于c# - 设计复杂 LINQ 代码的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3528993/

相关文章:

c# - 从右到左写入txt文件

.net - `SELECT MIN(ZoneMin), MAX(ZoneMin) FROM Plant` 作为 LINQ to SQL

.net - 在同一台计算机上调试TcpClient和TcpListener

C# - 查找两个 List<T> 的共同成员 - Lambda 语法

c# - Protobuf-net:无法创建抽象类

c# - 新的空白,非 null 匿名类型

c# - 发生 DateTimeInvalidLocalFormat

.net - Automapper AfterMap 函数初始化类

c# - 从 IList<IDictionary<string, object>> 获取键

.net - 如何将SQL查询转换为LINQ?