Pergunta

Eu tenho procurado fazer com que um mais genérico WHERE cláusula para eu não repetir código.Eu tenho o seguinte que retorna mensagens com base em uma etiqueta.A mesma coisa poderia utilizado apenas como facilmente para retornar mensagens com base em um termo de pesquisa ou em uma categoria.A única diferença é a cláusula where.Assim, a partir do que eu vi árvores de expressão ou predicado construtores poderiam ser usados, embora eu não sei se essas são as mesmas.Também DLINQ foi opção n em um so post, a partir de 2013.E LinqKit eu acho que é também uma opção.Alguém pode apontar na direção certa para a criação de um mais genérico cláusula where?

Esta é a parte que eu gostaria de fazer dinâmica Where(Function(t) t.PostTag.Any(Function(t1) t1.Tag.StartsWith(tag))) então, que eu poderia facilmente swpa em PostCategory ou Postos no lugar de PostTag.

Código:

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

Foi útil?

Solução

Resolvido -

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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top