FlexLabs.EntityFrameworkCore.Upsert
8.1.2
Prefix Reserved
dotnet add package FlexLabs.EntityFrameworkCore.Upsert --version 8.1.2
NuGet\Install-Package FlexLabs.EntityFrameworkCore.Upsert -Version 8.1.2
<PackageReference Include="FlexLabs.EntityFrameworkCore.Upsert" Version="8.1.2" />
paket add FlexLabs.EntityFrameworkCore.Upsert --version 8.1.2
#r "nuget: FlexLabs.EntityFrameworkCore.Upsert, 8.1.2"
// Install FlexLabs.EntityFrameworkCore.Upsert as a Cake Addin #addin nuget:?package=FlexLabs.EntityFrameworkCore.Upsert&version=8.1.2 // Install FlexLabs.EntityFrameworkCore.Upsert as a Cake Tool #tool nuget:?package=FlexLabs.EntityFrameworkCore.Upsert&version=8.1.2
FlexLabs.Upsert
This library adds basic support for "Upsert" operations to EF Core.
Uses INSERT … ON CONFLICT DO UPDATE
in PostgreSQL/Sqlite, MERGE
in SqlServer & Oracle and INSERT INTO … ON DUPLICATE KEY UPDATE
in MySQL.
Also supports injecting sql command runners to add support for other providers
A typical upsert command could look something like this:
DataContext.DailyVisits
.Upsert(new DailyVisit
{
UserID = userID,
Date = DateTime.UtcNow.Date,
Visits = 1,
})
.On(v => new { v.UserID, v.Date })
.WhenMatched(v => new DailyVisit
{
Visits = v.Visits + 1,
})
.RunAsync();
In this case, the upsert command will ensure that a new DailyVisit
will be added to the database. If a visit with the same UserID
and Date
already exists, it will be updated by incrementing it's Visits
value by 1.
Please read our Usage page for more examples
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. 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. |
-
net8.0
- Microsoft.EntityFrameworkCore.Relational (>= 8.0.0)
NuGet packages (14)
Showing the top 5 NuGet packages that depend on FlexLabs.EntityFrameworkCore.Upsert:
Package | Downloads |
---|---|
FenixAlliance.ACL.Dependencies
Application Component for the Alliance Business Suite. |
|
HwApp.Core
HwApp Core |
|
Elsa.Persistence.EntityFrameworkCore
Elsa is a set of workflow libraries and tools that enable super-fast workflowing capabilities in any .NET Core application. This package provides an Entity Framework Core persistence provider. |
|
YYApp
YYApp Core |
|
QuantFi.Services
Package Description |
GitHub repositories (4)
Showing the top 4 popular GitHub repositories that depend on FlexLabs.EntityFrameworkCore.Upsert:
Repository | Stars |
---|---|
zoriya/Kyoo
A portable and vast media library solution.
|
|
Texnomic/SecureDNS
Secure, Modern, Fully-Featured, All-In-One Cross-Architecture & Cross-Platform DNS Server Using .NET 8.0
|
|
PlexRipper/PlexRipper
A cross-platform Plex media downloader that seamlessly adds media from other Plex servers to your own!
|
|
Kukks/NNostr
A Nostr Relay and Client written in C#
|
Version | Downloads | Last updated | |
---|---|---|---|
8.1.2 | 14,388 | 11/28/2024 | |
8.1.0 | 4,551 | 11/24/2024 | |
8.0.0 | 1,003,293 | 12/3/2023 | |
7.0.0 | 934,427 | 12/18/2022 | |
7.0.0-beta.2 | 6,232 | 11/22/2022 | |
7.0.0-beta.1 | 439 | 11/16/2022 | |
6.0.2 | 467,988 | 11/16/2022 | |
6.0.1 | 3,842,045 | 1/2/2022 | |
6.0.0-preview5 | 57,459 | 7/11/2021 | |
5.1.0 | 66,991 | 1/2/2022 | |
5.0.0 | 365,671 | 7/11/2021 | |
4.0.1 | 34,113 | 7/11/2021 | |
4.0.0 | 379,410 | 3/2/2021 | |
3.1.0 | 2,177,523 | 1/26/2020 | |
3.0.0 | 106,978 | 9/29/2019 | |
3.0.0-netcore3-00140 | 3,656 | 8/11/2019 | |
2.2.1 | 109,165 | 9/17/2019 | |
2.2.0 | 43,798 | 8/11/2019 | |
2.1.2 | 88,309 | 5/22/2019 | |
2.1.1 | 2,367 | 5/21/2019 | |
2.1.0 | 2,906 | 5/19/2019 | |
2.0.7 | 54,179 | 3/18/2019 | |
2.0.6 | 11,348 | 2/6/2019 | |
2.0.5 | 17,651 | 1/25/2019 | |
2.0.4 | 8,741 | 1/3/2019 | |
2.0.3 | 7,193 | 12/18/2018 | |
2.0.2 | 12,162 | 11/3/2018 | |
2.0.1 | 2,707 | 10/24/2018 | |
2.0.0 | 11,243 | 9/19/2018 | |
1.1.0 | 2,308 | 9/19/2018 | |
1.0.4 | 14,119 | 3/10/2018 | |
1.0.3 | 2,496 | 2/23/2018 | |
1.0.2 | 2,310 | 2/20/2018 | |
1.0.1 | 2,353 | 2/19/2018 | |
1.0.0 | 3,757 | 2/18/2018 |
v8.1.0
+ Adding initial support for Oracle DB! (Thanks to @dadyarri)
+ Adding test support for returning inserted objects (Thanks to @PhenX)
+ Adding support for upserting into views (ymmv)
! Patching argument count calculation (for max argument count handling)
! Patching null constant handling in the update condition
v8.0.0
+ Adding support for EF Core 8
v7.0.0
+ Adding support for EF Core 7
v6.0.2
* Improving entity type detection when using DbSet<>
! Patching MySQL handling of null columns
v6.0.0
+ Adding support for EF Core 6
+ Handling UseIdentityAlwaysColumn columns
v5.0.0
! Fixing the library versioning. From now one, one version of the library depends on one version of EF Core, for all supported target frameworks
v4.0.1
! Patching some MySql conditional update queries
v4.0.0
+ Adding support for .NET 5 and EF Core 5
! Patched support for constants in the update condition
! Run and RunAsync will not return all rows affected when command was split into multiple batches, not just the last batch's row count
! Patching the extension method to replace/inject custom command runner
! Removed old extension method on IServiceCollection, since it wasn't working anyway