我一直在考虑制作一个更通用的WHERE
子句,所以我不会重复代码。我有以下基于标签返回帖子的内容。同样的事情可以很容易地用于基于搜索词或类别的返回帖子。唯一的区别是 where 子句。因此,从我所看到的可以使用表达式树或谓词构建器,尽管我不知道它们是否相同。在 2013 年的 SO 帖子中,LINQ 也是一个选项。我猜 LinqKit 也是一个选项。有人可以指出正确的方向来创建更通用的 where 子句吗?
这是我想要动态化的部分,Where(Function(t) t.PostTag.Any(Function(t1) t1.Tag.StartsWith(tag)))
以便我可以在 PostCategory 或 Posts 中轻松地 swpa 来代替 PostTag。
编码:
Return _postRepository.SelectAll.Where(Function(t) t.PostTag.Any(Function(t1) t1.Tag.StartsWith(tag))).Select(Function(S) New be_PostsViewModel With {.IsPublished = S.PostIsPublished, .Id = S.PostId, .PostSummary = S.PostSummary, .PostDateCreated = S.PostDateCreated, .PostTitle = S.PostTitle, .PostTags = S.PostTag}).OrderByDescending(Function(d) d.PostDateCreated).Where(Function(p) p.IsPublished = True).Skip((Page - 1) * PageSize).Take(PageSize).ToList