首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C# MongoDB驱动程序2.15.0无法在Linq查询中执行

C# MongoDB驱动程序2.15.0无法在Linq查询中执行
EN

Stack Overflow用户
提问于 2022-04-10 09:42:31
回答 1查看 433关注 0票数 0

我正在尝试从MongoDB获得我的结果集。我需要在这里使用过滤器。这是我的代码,试图获取数据。

代码语言:javascript
复制
IMongoCollection<VaersVax> vaersVaxCollection = mongoDatabase.GetCollection<VaersVax>("VaersVax");
var query = vaersVaxCollection.AsQueryable().Where(x => x.VAX_MANU.In(vaxManuList) && x.VAX_NAME.In(vaxNameList) && x.VAX_TYPE.In(vaxTypeList));
var list = query.Select(x => x.VAERS_ID).ToHashSet();

当我试图得到一个结果,我得到的是错误;

代码语言:javascript
复制
System.ArgumentException: Unsupported filter: {document}{VAX_MANU}.In(value(System.String[])).
   at MongoDB.Driver.Linq.Linq2Implementation.Translators.PredicateTranslator.Translate(Expression node)
   at MongoDB.Driver.Linq.Linq2Implementation.Translators.PredicateTranslator.TranslateAndAlso(BinaryExpression node)
   at MongoDB.Driver.Linq.Linq2Implementation.Translators.PredicateTranslator.Translate(Expression node)
   at MongoDB.Driver.Linq.Linq2Implementation.Translators.PredicateTranslator.TranslateAndAlso(BinaryExpression node)
   at MongoDB.Driver.Linq.Linq2Implementation.Translators.PredicateTranslator.Translate(Expression node)
   at MongoDB.Driver.Linq.Linq2Implementation.Translators.PredicateTranslator.Translate(Expression node, IBsonSerializerRegistry serializerRegistry)
   at MongoDB.Driver.Linq.Linq2Implementation.Translators.QueryableTranslator.TranslateWhere(WhereExpression node)
   at MongoDB.Driver.Linq.Linq2Implementation.Translators.QueryableTranslator.Translate(Expression node)
   at MongoDB.Driver.Linq.Linq2Implementation.Translators.QueryableTranslator.TranslateSelect(SelectExpression node)
   at MongoDB.Driver.Linq.Linq2Implementation.Translators.QueryableTranslator.Translate(Expression node)
   at MongoDB.Driver.Linq.Linq2Implementation.Translators.QueryableTranslator.TranslatePipeline(PipelineExpression node)
   at MongoDB.Driver.Linq.Linq2Implementation.Translators.QueryableTranslator.Translate(Expression node)
   at MongoDB.Driver.Linq.Linq2Implementation.Translators.QueryableTranslator.Translate(Expression node, IBsonSerializerRegistry serializerRegistry, ExpressionTranslationOptions translationOptions)
   at MongoDB.Driver.Linq.Linq2Implementation.MongoQueryProviderImpl`1.Translate(Expression expression)
   at MongoDB.Driver.Linq.Linq2Implementation.MongoQueryProviderImpl`1.Execute(Expression expression)
   at MongoDB.Driver.Linq.Linq2Implementation.MongoQueryableImpl`2.GetEnumerator()
   at System.Collections.Generic.HashSet`1.UnionWith(IEnumerable`1 other)
   at System.Collections.Generic.HashSet`1..ctor(IEnumerable`1 collection, IEqualityComparer`1 comparer)
   at System.Linq.Enumerable.ToHashSet[TSource](IEnumerable`1 source, IEqualityComparer`1 comparer)
   at System.Linq.Enumerable.ToHashSet[TSource](IEnumerable`1 source)
   at MongoOperations.MongoHelper.getTop10MostFrequentSymptom1DataByVaxManuNameType(IEnumerable`1 vaxManuList, IEnumerable`1 vaxNameList, IEnumerable`1 vaxTypeList) in D:\KodUygulamalari\OkulProje\VaersWebAPI\MongoOperations\MongoHelper.cs:line 318
   at MongoBusiness.MongoBusinessOperations.getTop10MostFrequentSymptom1DataByVaxManuNameType(IEnumerable`1 vaxManuList, IEnumerable`1 vaxNameList, IEnumerable`1 vaxTypeList)

我可以以某种方式在MongoDB驱动程序上执行LINQ查询,还是应该检查不同的方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-15 06:11:08

MongoDB.Driver支持linq.例如:

代码语言:javascript
复制
IMongoCollection<VaersVax> vaersVaxCollection = mongoDatabase.GetCollection<VaersVax>("VaersVax");
var query = vaersVaxCollection.AsQueryable().Where(x => vaxManuList.Contains(x.VAX_MANU) && vaxNameList.Contains(x.VAX_NAME) && vaxTypeList.Contains(x.VAX_TYPE));
var list = query.Select(x => x.VAERS_ID).ToHashSet();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71815406

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档