首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何选择与列表中所有ids匹配的所有对象?

如何选择与列表中所有ids匹配的所有对象?
EN

Stack Overflow用户
提问于 2013-06-25 05:43:47
回答 2查看 108关注 0票数 1

我有一个配料I数组,我需要找到包含所有配料在一起的所有食谱,而不是一个或任何一个配料。

我尝试了这样的东西:

代码语言:javascript
运行
复制
var query = (from ri in db.RecipesIngredients
                     where SelectedIDs.Contains(ri.IngredientId)
                     select ri.RecipeId).Distinct();

它的作用是:获取包含id1、id2或id3等内容的食谱。我希望它是:获取包含id1、id2和id3等的食谱。

这个是可能的吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-25 05:52:24

你很接近了:

代码语言:javascript
运行
复制
var query = (from r in db.Recipes
                     where SelectedIDs.All(i => r.Ingredients.Any(ri => ri.IngredientId == i))
                     select r.RecipeId).Distinct();

翻译为

“给我所有的食谱,其中SelectedIDs中的所有成分都在该食谱的配料列表中。”

票数 4
EN

Stack Overflow用户

发布于 2013-06-25 05:52:30

我怀疑你实际上想要所有的食谱,其中不包括任何未选择的成分,在这种情况下,你可以使用:

代码语言:javascript
运行
复制
var query = db.RecipesIngredients
              .Except(db.RecipeIngredients
                        .Where(x => SelectedIDs.Contains(x.IngredientId)))
              .Select(ri => ri.RecipeId);

我相信这是合乎逻辑的--它是否被翻译成SQL是另一回事。

如果你真的想要一个包含所有选择的成分(但也可能包括其他未选择的成分)的食谱,那么D Stanley的答案可能就是你想要的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17285655

复制
相关文章

相似问题

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