WHERE
コードを繰り返さないように、より一般的な句を作成することを検討してきました。タグに基づいて投稿を返す次のものがあります。同じことを、検索用語またはカテゴリに基づいたリターン ポストにも同じように簡単に使用できます。唯一の違いは where 句です。したがって、私が見たものから、式ツリーまたは述語ビルダーを使用できますが、これらが同じかどうかはわかりません。また、2013年のSO投稿ではDLINQはオプションではありませんでした。そして、LinqKitもオプションだと思います。より一般的なwhere句を作成するための正しい方向を誰かが指摘できますか?
Where(Function(t) t.PostTag.Any(Function(t1) t1.Tag.StartsWith(tag)))
これは、 PostTag の代わりに PostCategory または Posts で簡単に swpa できるように、動的にしたい部分です。
コード:
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