gpt4 book ai didi

c# - 选择具有所有给定标签的 EF 实体(其中标签是 EF 实体)

转载 作者:行者123 更新时间:2023-11-30 17:59:27 27 4
gpt4 key购买 nike

我有以下情况:一个“对话”实体/表,它有多个关联的标签。Tag 也是一个实体/表 - key/id 是 tagName(一个字符串)。

在客户端 (javascript),我在处理标签时使用字符串数组。

现在我想检索具有所有给定标签的所有对话。


输入是字符串数组,输出应该是对话的集合

我试过:

var filterTags = new List<EFModels.Tag>();
foreach (var tagName in tags)
{
filterTags.Add(new EFModels.Tag() { Name = tagName});
}

var conversations = from c in context.Conversations where !c.Tags.Except(filterTags).Any() select c ;

问题是:无法创建“EFModels.Tag”类型的常量值。在此上下文中仅支持基本类型或枚举类型 - 这是有道理的。

现在我该如何选择?最好的方法是什么? (我还是想用linq,不写sql select)

最佳答案

您可以将 c.Tags 投影到标签名称。

我猜应该是这样

var conversations = from c in context.Conversations where !c.Tags.Select(tag => tag.Name ).Except(filterTags).Any() select c ;

其中 filterTags 是包含标签名称的字符串列表

关于c# - 选择具有所有给定标签的 EF 实体(其中标签是 EF 实体),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11203571/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com