Csharp/C#教程:一个数据库请求中的Concat IQueryable集合分享


一个数据库请求中的Concat IQueryable集合

我使用entity framework。我需要concat两个集合。例如:

IQueryable collection1 = context.Entiies.Where(predicate); IQueryable collection2 = context.Entiies.Where(otherPredicate); var result = collection1.concat(collection2).toList(); //1 var result = collection1.union(collection2).toList; //2 

1和2变体都将在数据库中执行2个请求,因为这些方法需要IEnumerable作为参数。所以问题是我可以通过一个数据库调用来连接两个Iqueryble集合

除了IEnumerable之外,还有用于IQueryable Concat()Union()扩展方法。 您可以在可查询对象上使用它们。 Union()映射到SQL UNION操作, Concat()映射到UNION ALL

只要您不将IQueryable对象转换为IEnumerable (显式或隐式),您就可以使用这些方法,如果可能的话,它们将在数据库中进行评估。

进一步阅读:


在浏览文档时,我忽略了在Queryable声明的扩展方法接受IQueryable作为第一个参数,但IEnumerable作为第二个参数的细节。 正如D Stanley所指出的,这些方法将测试参数是否为IQueryable ,如果是,将尝试使用相关查询引擎解析操作。

上述就是C#学习教程:一个数据库请求中的Concat IQueryable集合分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1016504.html

(0)
上一篇 2021年12月31日
下一篇 2021年12月31日

精彩推荐