어떻게 더 일반적인 where 절을 만드는가?
-
21-12-2019 - |
문제
코드를 반복하지 않으므로 더 일반적인 WHERE
절을보고 있습니다.태그를 기반으로 게시물을 반환하는 다음과 같은 다음이 있습니다.검색 용어 또는 카테고리에 기반한 반품 게시물을 쉽게 사용할 수있는 것처럼 동일한 일이 사용될 수 있습니다.유일한 차이점은 WHERE 절입니다.그래서 내가 표현 나무 나 술어가 똑같이 보이는 것을 보았습니다.또한 DLINQ는 2013 년부터 GOT에 대한 N 옵션이었습니다. 그리고 Linqkit 나는 옵션이기도합니다.누군가가보다 일반적인 where 절을 만들기 위해 올바른 방향으로 가리킬 수 있습니까?
이것은 동적 인 Where(Function(t) t.PostTag.Any(Function(t1) t1.Tag.StartsWith(tag)))
를 만들고 싶은 부분이므로 PostTag 대신 쉽게 PostCategory 또는 Posts에서 쉽게 SWPA를 쉽게 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
해결책
해결 -
Dim PostsByTagExpression As Expression(Of Func(Of PostSummaryDTO, Boolean)) =
Function(p) p.PostTag.Any(Function(t1) t1.Tag.StartsWith(Word))
Dim postsbytag = _postRepository.SelectAll.AsExpandable.Where(PostsByTagExpression)
.Select
.