EfCore.GenericServices
3.2.1
See the version list below for details.
dotnet add package EfCore.GenericServices --version 3.2.1
NuGet\Install-Package EfCore.GenericServices -Version 3.2.1
<PackageReference Include="EfCore.GenericServices" Version="3.2.1" />
paket add EfCore.GenericServices --version 3.2.1
#r "nuget: EfCore.GenericServices, 3.2.1"
// Install EfCore.GenericServices as a Cake Addin #addin nuget:?package=EfCore.GenericServices&version=3.2.1 // Install EfCore.GenericServices as a Cake Tool #tool nuget:?package=EfCore.GenericServices&version=3.2.1
EfCore.GenericServices
This library helps you quickly code Create, Read, Update and Delete (CRUD) accesses for a web/mobile/desktop application. It acts as a adapter and command pattern between a database accessed by Entity Framework Core (EF Core) and the needs of the front-end system.
Useful articles
This readme provides a good overview, but here are some articles that give you a detailed description of what the libraray does.
- GenericServices: A library to provide CRUD front-end services from a EF Core database.
- Improving Domain-Driven Design updates in EfCore.GenericServices.
- GenericServices Design Philosophy + tips and techniques.
- Improving Domain-Driven Design updates in EfCore.GenericServices - version 3.1.0 and above
- GenericServices documentation.
What the library does
This library takes advantage of the fact that each of the four CRUD database accesses differ in what they do, but they have a common set of data part they all use, which are:
- What database class/table do you want to access?
- What properties in that class/table do you want to access or change?
This library uses DTOs (data transfer objects, also known as ViewModels) plus a special interface to define the class/table and the properties to access. That allows the library to implement a generic solution for each of the four CRUD accesses, where the only thing that changes is the DTO you use.
Typical web applications have hundreds of CRUD pages - display this, edit that, delete the other - and each CRUD access has to adapt the data in the database to show the user, and then apply the changes to the database. So, you create one set of update code for your specific application and then cut/paste + change one line (the DTO name) for all the other versions.
I personally work with ASP.NET Core, so my examples are from that, but it will work with any NET Core type of application (I do know one person have used this libary with WPF).
NuGet link and link to documentation.
MIT license.
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 is compatible. |
.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
- AutoMapper (>= 9.0.0)
- GenericServices.StatusGeneric (>= 1.1.0)
- Microsoft.AspNetCore.JsonPatch (>= 2.1.1)
- Microsoft.EntityFrameworkCore (>= 2.1.1)
-
.NETStandard 2.1
- AutoMapper (>= 9.0.0)
- GenericServices.StatusGeneric (>= 1.1.0)
- Microsoft.AspNetCore.JsonPatch (>= 3.0.0)
- Microsoft.EntityFrameworkCore (>= 3.0.0)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on EfCore.GenericServices:
Package | Downloads |
---|---|
EfCore.GenericServices.AspNetCore
A support library to the EfCore.GenericServices and EfCore.GenericBizRunner libraries. It converts IStatusGeneric into ASP.NET Core's ModelState or Web API response |
|
EntityServices
Package Description |
|
UZB.ELYORBEK.EF
CRUD operations works. |
GitHub repositories (2)
Showing the top 2 popular GitHub repositories that depend on EfCore.GenericServices:
Repository | Stars |
---|---|
JonPSmith/AuthPermissions.AspNetCore
This library provides extra authorization and multi-tenant features to an ASP.NET Core application.
|
|
JonPSmith/PermissionAccessControl2
Version 2 of example application to go with articles on feature and data authorization
|
Version | Downloads | Last updated |
---|---|---|
9.0.0 | 138 | 11/21/2024 |
8.1.0 | 5,530 | 5/4/2024 |
8.0.0 | 492 | 4/10/2024 |
6.0.0 | 6,660 | 11/22/2023 |
5.2.1 | 21,047 | 1/3/2023 |
5.2.0 | 3,806 | 11/15/2022 |
5.2.0-preview001 | 683 | 12/8/2022 |
5.1.1 | 17,928 | 2/2/2022 |
5.1.0 | 25,546 | 11/10/2021 |
5.1.0-preview001 | 167 | 11/4/2021 |
5.0.1 | 16,629 | 7/8/2021 |
5.0.0 | 19,383 | 1/6/2021 |
3.3.0 | 1,382 | 6/21/2021 |
3.2.2 | 17,848 | 5/22/2020 |
3.2.1 | 3,516 | 4/11/2020 |
3.2.0 | 1,185 | 4/10/2020 |
3.1.0 | 45,791 | 1/27/2020 |
3.0.0 | 5,190 | 10/12/2019 |
2.1.0-preview001 | 1,072 | 10/4/2019 |
2.0.3 | 3,677 | 7/29/2019 |
2.0.2 | 11,213 | 4/4/2019 |
2.0.1 | 5,019 | 3/10/2019 |
2.0.0 | 7,480 | 1/2/2019 |
2.0.0-preview001 | 2,753 | 12/24/2018 |
1.3.3 | 5,710 | 10/27/2018 |
1.3.2 | 1,908 | 10/22/2018 |
1.3.1 | 2,029 | 9/26/2018 |
1.3.0 | 1,976 | 9/18/2018 |
1.2.6 | 10,461 | 8/18/2018 |
1.2.4 | 2,993 | 7/29/2018 |
1.2.3 | 2,195 | 7/24/2018 |
1.2.2 | 1,457 | 7/16/2018 |
1.2.1 | 1,490 | 7/14/2018 |
1.1.0 | 2,155 | 6/7/2018 |
1.0.0 | 2,355 | 4/12/2018 |
- Bug fix. Added extra check on DTO with ILinkToEntity linked to Owned Type - issue #43