CodeOfChaos.Extensions.EntityFrameworkCore
0.37.1
Prefix Reserved
See the version list below for details.
dotnet add package CodeOfChaos.Extensions.EntityFrameworkCore --version 0.37.1
NuGet\Install-Package CodeOfChaos.Extensions.EntityFrameworkCore -Version 0.37.1
<PackageReference Include="CodeOfChaos.Extensions.EntityFrameworkCore" Version="0.37.1" />
<PackageVersion Include="CodeOfChaos.Extensions.EntityFrameworkCore" Version="0.37.1" />
<PackageReference Include="CodeOfChaos.Extensions.EntityFrameworkCore" />
paket add CodeOfChaos.Extensions.EntityFrameworkCore --version 0.37.1
#r "nuget: CodeOfChaos.Extensions.EntityFrameworkCore, 0.37.1"
#addin nuget:?package=CodeOfChaos.Extensions.EntityFrameworkCore&version=0.37.1
#tool nuget:?package=CodeOfChaos.Extensions.EntityFrameworkCore&version=0.37.1
CodeOfChaos.Extensions.EntityFrameworkCore
CodeOfChaos.Extensions.EntityFrameworkCore
is a library that extends LINQ capabilities in Entity Framework Core. It
introduces conditional extensions for operations like Include
, Where
, OrderBy
, and others. These methods enable
dynamic query building, improving flexibility and readability when working with Entity Framework Core.
Features
Conditional Query Building
Enhance IQueryable
queries with conditional functionality:
- Conditional Includes:
- Dynamically include related entities based on runtime conditions.
- Conditional Filters:
- Apply
Where
clauses only when a condition is met.
- Apply
- Conditional Sorting:
- Apply
OrderBy
clauses conditionally or use optional order expressions.
- Apply
- Conditional Pagination:
- Apply
Take
, including support for ranges.
- Apply
Installation
This library targets .NET 9.0
and requires C# 13.0. Ensure your project meets these requirements before using.
Add the dependency to your project via NuGet:
dotnet add package CodeOfChaos.Extensions.EntityFrameworkCore
Usage
Here’s how you can leverage the library for dynamic query building in Entity Framework Core:
Conditional Include
Dynamically include related entities only when needed:
using Microsoft.EntityFrameworkCore;
var query = dbContext.Users.ConditionalInclude(isAdmin, u => u.Roles);
Conditional Where
Apply a filter based on runtime conditions:
var query = dbContext.Users.ConditionalWhere(filterByEmail, u => u.Email == searchEmail);
Conditional OrderBy
Use conditional sorting:
var query = dbContext.Users.ConditionalOrderBy(applySorting, u => u.LastName);
Or, with a comparer:
var query = dbContext.Users.ConditionalOrderBy(applySorting, u => u.LastName, StringComparer.OrdinalIgnoreCase);
Conditional Take
Limit the results dynamically:
var query = dbContext.Users.ConditionalTake(applyPagination, 50);
Or, with a range:
var query = dbContext.Users.ConditionalTake(applyPagination, ..10);
Contributing
Feel free to fork and contribute to the project by submitting pull requests. When contributing, ensure your changes align with the project’s coding standards.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. |
-
net9.0
- Microsoft.EntityFrameworkCore (>= 9.0.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
0.60.0 | 77 | 4/18/2025 |
0.59.1 | 104 | 4/18/2025 |
0.59.0 | 150 | 4/17/2025 |
0.58.0 | 146 | 4/17/2025 |
0.57.0 | 84 | 4/5/2025 |
0.56.0 | 83 | 3/29/2025 |
0.55.0 | 116 | 3/26/2025 |
0.54.0 | 446 | 3/26/2025 |
0.53.0 | 395 | 3/24/2025 |
0.52.0 | 393 | 3/24/2025 |
0.51.0 | 143 | 3/22/2025 |
0.50.0 | 138 | 3/20/2025 |
0.49.0 | 135 | 3/20/2025 |
0.48.0 | 133 | 3/18/2025 |
0.47.0 | 131 | 3/18/2025 |
0.46.0 | 129 | 3/18/2025 |
0.45.0 | 131 | 3/18/2025 |
0.44.0 | 139 | 3/17/2025 |
0.43.0 | 84 | 3/14/2025 |
0.42.3 | 208 | 3/4/2025 |
0.42.3-preview.1 | 161 | 3/4/2025 |
0.41.2 | 203 | 3/4/2025 |
0.41.1 | 187 | 3/3/2025 |
0.41.0 | 94 | 2/26/2025 |
0.40.1 | 94 | 2/24/2025 |
0.40.0 | 86 | 2/24/2025 |
0.39.4 | 101 | 2/20/2025 |
0.39.3 | 92 | 2/20/2025 |
0.39.2 | 91 | 2/20/2025 |
0.39.1 | 92 | 2/20/2025 |
0.39.0 | 103 | 2/18/2025 |
0.37.2 | 105 | 2/16/2025 |
0.37.1 | 98 | 2/16/2025 |
0.36.4 | 105 | 2/14/2025 |
0.36.0 | 93 | 2/14/2025 |
0.35.0 | 100 | 2/8/2025 |
0.34.0 | 94 | 2/5/2025 |
0.33.0 | 96 | 2/5/2025 |
0.32.0 | 116 | 2/1/2025 |
0.31.0 | 93 | 1/29/2025 |
0.30.0 | 84 | 1/8/2025 |
0.29.2 | 108 | 1/4/2025 |
0.29.0 | 118 | 1/3/2025 |
0.28.2 | 107 | 1/1/2025 |
0.27.1 | 110 | 12/31/2024 |
0.27.0 | 94 | 12/29/2024 |
0.26.0 | 88 | 12/28/2024 |
0.25.0 | 89 | 12/28/2024 |
0.24.3 | 92 | 12/27/2024 |
0.24.2 | 92 | 12/27/2024 |
0.24.1 | 86 | 12/27/2024 |
0.24.0 | 87 | 12/27/2024 |
0.23.1 | 89 | 12/27/2024 |
0.23.0 | 90 | 12/27/2024 |
0.22.2 | 84 | 12/27/2024 |
0.22.0 | 92 | 12/23/2024 |
0.21.0 | 107 | 12/22/2024 |
0.20.0-preview.1 | 55 | 12/21/2024 |