C# 解构表达式<;Func<&燃气轮机&燃气轮机;并收集到一个.Intersect()中
我有一个MongoDB查询的抽象,通过它我可以传递一个表达式树来过滤从数据库检索到的文档。例如:C# 解构表达式<;Func<&燃气轮机&燃气轮机;并收集到一个.Intersect()中,c#,linq,C#,Linq,我有一个MongoDB查询的抽象,通过它我可以传递一个表达式树来过滤从数据库检索到的文档。例如: var filterExpression = x => x.IsPublished && x.Topics.Contains("fish"); MyCollection.Get(filterExpression); 在实施这项计划时,我会: _collection.Find(filterExpression).ToListAsync(); 我还有一个假货,用于测试: Col
var filterExpression = x => x.IsPublished && x.Topics.Contains("fish");
MyCollection.Get(filterExpression);
在实施这项计划时,我会:
_collection.Find(filterExpression).ToListAsync();
我还有一个假货,用于测试:
Collection.Where(expression.Compile());
现在我需要做一个交叉查询,比如给我所有发布的文档,以及关于“鱼”或“薯条”的主题
在mongo中,我必须使用:
Builders<TDAO>.Filter.AnyIn(setInDocument, setToIntersect)
Builders.Filter.AnyIn(setInDocument,setToIntersect)
如果参数具有以下类型:
Expression<Func<TDAO, IEnumerable<string>>> setInDocument
IEnumerable<string> setToIntersect
表达式集文档
IEnumerable setToIntersect
有没有一种方法可以从这些类型到交叉点,例如:
.Where(setInDocument.Intersect(setToIntersect).Any())
我假设setInDocument
是IEnumerable
,而不是IEnumerable>
?oops;是的,很抱歉,setInDocument
是文档中某个字段的表达式树。您的问题不清楚。为什么要在伪实现中使用表达式
和IEnumerable
?你不应该使用表达式树吗?我已经更新了我的问题@Albert