Skip to content

A simple search functionality working on IQueryable collections

License

Notifications You must be signed in to change notification settings

patrikrazem/SearchQueryable

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SearchQueryable

NuGet

A simple search extension for IQueryable collections.

Usage

Strict mode

By default, the search will work with a compatibility mode that is very strict, so as to support queries through EF. This mode will search all public string properties on each element contained in the collection:

myCollection.Search("term");

Additionally, a list of members can be provided to which to limit the search:

myCollection.Search(
    "term", 
    x => x.FirstName, 
    x => x.LastName);

In this case, the term will only be searched withing the FirstName nad LastName members.

All mode

An All compatibility mode is also avaialble, which will try to retrieve string representations of all members and fields of any type. This is usually not compatible with most EF providers, since .ToString() in most cases can't be translated into a meaningful SQL query. It is however useful for querying in-memory collections:

myInMemoryCollection.Search("term", CompatibilityMode.All);

A version of this with provided member predicates is also available:

myInMemoryCollection.Search(
    "term", 
    CompatibilityMode.All,
    x => x.FirstName,               // String public property
    x => x.Age,                     // int private field
    x => x.Address.Postcode,        // Nested property of a child entity
    x => x.Employer                 // A reference type that has a meaningful .ToString() implementation
);

About

A simple search functionality working on IQueryable collections

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages