在 Piranha 中查询帖子字段

Querying post fields in Piranha

提问人:atoms 提问时间:2/7/2023 更新时间:2/8/2023 访问量:31

问:

我正在尝试弄清楚如何最好地按 Piranha 中的字段/区域过滤帖子,而无需将它们全部加载然后执行过滤。

目前我有以下几点:

var posts = _db.Posts
            .Where(p => p.Published >= DateTime.Now)
            .Where(x => x.title == "somestring")
            .Select(p => p.Id)
            .ToList();

如果我想查询区域中的字段,我将如何修改上述内容以实现此目的?FooArticleDetails

我可以通过加载所有帖子及其相关内容来检索结果,但由于显而易见的原因,这不是首选。Regions

loadedItems.Posts
    .Where(post =>
        suppliedDiff.Contains(
            "hard",
            post.Regions.FooArticleDetails.difficulty.Value)).ToLower()
        ))
    .ToList();
C# 实体 食人鱼-CMS

评论


答:

1赞 atoms 2/8/2023 #1

我已经想通了。Post Regions 存储为 PostFields。可以通过 Fields 属性访问这些内容。

posts.Where(post =>
    post.Fields
        .Where(x =>
            x.FieldId == "difficulty" &&
            x.RegionId == "FooArticleDetails" &&
            suppliedDiff.Contains(x.Value.ToLower())
        )
        .Any());