Gridify.EntityFramework
1.0.0
See the version list below for details.
dotnet add package Gridify.EntityFramework --version 1.0.0
NuGet\Install-Package Gridify.EntityFramework -Version 1.0.0
<PackageReference Include="Gridify.EntityFramework" Version="1.0.0" />
paket add Gridify.EntityFramework --version 1.0.0
#r "nuget: Gridify.EntityFramework, 1.0.0"
// Install Gridify.EntityFramework as a Cake Addin #addin nuget:?package=Gridify.EntityFramework&version=1.0.0 // Install Gridify.EntityFramework as a Cake Tool #tool nuget:?package=Gridify.EntityFramework&version=1.0.0
Gridify
Easy and optimize way to apply paging, filtering and sorting using string based conditions and filed names.
The best use case of this library is Aspnet APIs when you need to get some string base filtering conditions or sort data by filed name or order data by propery name and use that information to retrieve requested data from a repository or database. at the end send back pageable sorted and filtered data to the user.
Available Extentions
Extention | Description |
---|---|
ApplyFiltering | Apply Filtering using string Filter property of QueryObject class and returns an IQueryable<T> |
ApplyOrdering | Apply Ordering using string SortBy and bool IsSortAsc properties of QueryObject class and returns an IQueryable<T> |
ApplyPaging | Apply paging using short Page and int PageSize properties of QueryObject class and returns an IQueryable<T> |
ApplyOrderingAndPaging | Apply Both Ordering and paging and returns an IQueryable<T> |
ApplyEverything | Apply Filtering,Ordering and paging and returns an IQueryable<T> |
ApplyEverythingWithCount | Like ApplyEverything but it returns a tuple (int Count,IQueryable<T> DataQuery) . we can use Count , to create our pages. |
Gridify | Receives a QueryObject ,Load All requested data and returns Paging<T> . (Paging Class Has int TotalItems and List<T> Items ) |
Supported Filtering Operators
Name | Operator | Usage example |
---|---|---|
Equal | == |
"FieldName == Value" |
NotEqual | != |
"FieldName != Value" |
GreaterThan | << |
"FieldName << Value" |
LessThan | >> |
"FieldName >> Value" |
GreaterThanOrEqual | >= |
"FieldName >= Value" |
LessThanOrEqual | <= |
"FieldName <= Value" |
Contains - Like | =* |
"FieldName =* Value" |
NotContains - NotLike | !* |
"FieldName =* Value" |
AND - && | , |
"FirstName==Value , LastName==Value2" |
OR - || | \| |
"FirstName==Value \| LastName==Value2" |
Parenthesis | () |
"( FirstName=* Jo , Age<<30) \| ( FirstName != Hn , Age>>30 )" |
we can easily create complex queries using Parenthesis()
with AND (,
) + OR (|
) operators.
Basic Usage example
// usually, we don't need to create this object manually
// for example, we get this object as a parameter from our API Controller
var filter = new QueryObject()
{
Filter = "FirstName == John",
IsSortAsc = false,
Page = 1,
PageSize = 20,
SortBy = "LastName"
};
Paging<Person> pData =
myDbContext.Persons // we can use Any list or repository or EntityFramework context
.Gridify(filter); // Filter,Sort & Apply Paging
// pData.TotalItems => Count persons with 'John', First name
// pData.Items => First 20 Persons with 'John', First Name
Collaboration
Any collaboration to improve documentation and library is appreciated feel free to send pullrequest. ❤️
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Gridify (>= 1.0.0)
- Microsoft.EntityFrameworkCore (>= 3.1.5)
NuGet packages (5)
Showing the top 5 NuGet packages that depend on Gridify.EntityFramework:
Package | Downloads |
---|---|
EasyExtensions.EntityFrameworkCore
Ready-to-use library for simplifying the development of .NET applications. |
|
Pandatech.GridifyExtensions
Pandatech.Gridify.Extensions simplifies and extends the functionality of the Gridify NuGet package. It provides additional extension methods and functionality to streamline data filtering and pagination, making it more intuitive and powerful to use in .NET applications. Our enhancements ensure more flexibility, reduce boilerplate code, and improve overall developer productivity when working with Gridify. |
|
KFKLib.Gridify.AutoMapper
Package Description |
|
DataExplorer.EfCore.Unstable
Library featuring common patterns (Unit of Work, Repository, Specification, Services) in regard to working with EF Core. |
|
BBConsultoria.Antares.OpenSdk.Data.EntityFramework
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
2.15.1 | 1,633 | 11/14/2024 |
2.15.0 | 3,756 | 10/31/2024 |
2.15.0-preview7 | 2,621 | 8/28/2024 |
2.15.0-preview5 | 150 | 8/14/2024 |
2.15.0-preview4 | 545 | 7/18/2024 |
2.15.0-preview3 | 372 | 6/29/2024 |
2.15.0-preview2 | 230 | 6/22/2024 |
2.15.0-preview1 | 86 | 6/21/2024 |
2.14.2 | 54,438 | 6/8/2024 |
2.14.1 | 89,301 | 12/4/2023 |
2.14.0 | 8,823 | 11/18/2023 |
2.13.1 | 1,761 | 11/12/2023 |
2.13.0 | 190 | 11/11/2023 |
2.12.0 | 1,687 | 10/27/2023 |
2.11.1 | 16,693 | 10/6/2023 |
2.11.0 | 147 | 10/5/2023 |
2.10.1 | 4,020 | 9/28/2023 |
2.10.0 | 1,715 | 9/20/2023 |
2.10.0-preview1 | 117 | 9/19/2023 |
2.9.2 | 848 | 9/15/2023 |
2.9.1 | 7,432 | 8/22/2023 |
2.9.0 | 1,785 | 8/18/2023 |
2.8.4 | 46,826 | 4/18/2023 |
2.8.3 | 12,638 | 3/4/2023 |
2.8.2 | 45,230 | 12/7/2022 |
2.8.1 | 135,858 | 10/7/2022 |
2.8.0 | 8,552 | 7/22/2022 |
2.7.5 | 38,171 | 6/6/2022 |
2.7.4 | 8,017 | 4/22/2022 |
2.7.3 | 772 | 4/13/2022 |
2.7.2 | 772 | 4/12/2022 |
2.7.1 | 3,129 | 3/2/2022 |
2.7.0 | 485 | 3/1/2022 |
2.6.0 | 14,234 | 1/14/2022 |
2.5.0 | 4,756 | 12/27/2021 |
2.4.8 | 3,399 | 12/15/2021 |
2.4.7 | 299 | 12/14/2021 |
2.4.6 | 309 | 12/10/2021 |
2.4.5 | 476 | 12/5/2021 |
2.4.5-alpha5 | 198 | 12/5/2021 |
2.4.5-alpha4 | 211 | 12/5/2021 |
2.4.5-alpha1 | 167 | 12/2/2021 |
2.4.4 | 17,950 | 11/20/2021 |
2.4.3 | 711 | 11/19/2021 |
2.4.2 | 756 | 11/19/2021 |
2.4.1 | 1,902 | 11/18/2021 |
2.4.0 | 553 | 11/18/2021 |
2.3.3 | 456 | 11/16/2021 |
2.3.2 | 857 | 11/1/2021 |
2.3.1 | 1,185 | 10/19/2021 |
2.3.0 | 3,860 | 10/4/2021 |
2.2.1 | 345 | 9/30/2021 |
2.2.0 | 368 | 9/28/2021 |
2.1.0 | 438 | 9/21/2021 |
2.0.0 | 357 | 9/18/2021 |
2.0.0-beta.3 | 158 | 9/17/2021 |
2.0.0-beta.2 | 154 | 9/16/2021 |
2.0.0-beta.1 | 192 | 9/15/2021 |
2.0.0-alpha.1 | 175 | 8/12/2021 |
1.4.2 | 8,349 | 8/8/2021 |
1.4.1 | 462 | 8/4/2021 |
1.4.0 | 373 | 8/4/2021 |
1.3.5 | 1,011 | 7/28/2021 |
1.3.4 | 1,872 | 7/16/2021 |
1.3.3 | 466 | 7/1/2021 |
1.3.2 | 371 | 6/30/2021 |
1.3.1 | 361 | 6/23/2021 |
1.1.2 | 417 | 4/16/2021 |
1.1.1 | 347 | 4/16/2021 |
1.1.0 | 1,370 | 9/17/2020 |
1.0.5 | 536 | 7/3/2020 |
1.0.4 | 470 | 7/3/2020 |
1.0.3 | 549 | 7/2/2020 |
1.0.2 | 458 | 7/2/2020 |
1.0.1 | 432 | 7/2/2020 |
1.0.0 | 673 | 7/1/2020 |