Using System.Linq.Dynamic in VB.Net
16-Dec-1313 Leave a comment
Dynamic Linq
Was trying to using dynamic filter as I would do with datasets. Sometimes you may want to build the query at runtime. Steps are:
- Use NuGet to install System.Linq.Dynamic
- At top of class Imports System.Linq.Dynamic
- Use code as in example below:
Dim queryString1 = "Title = @0" FilmsList = FilmsList.AsQueryable.Where(queryString1, "Casablanca").ToList Dim queryString2 = "Title.Contains(@0)" FilmsList = FilmsList.AsQueryable.Where(queryString2, "a").ToList Dim queryString3 = "Title = ""Casablanca""" FilmsList = FilmsList.AsQueryable.Where(queryString3).ToList FilmDataGrid.ItemsSource = FilmsList
Error 1: Character literal must contain exactly one character
Solution 1: Use double quotes when constructing predicate in code e.g. Dim myFilter = String.Concat( “Title = “””,myTitle,””””)
End.