FlexLabs.EntityFrameworkCore.Upsert
8.1.0
dotnet add package FlexLabs.EntityFrameworkCore.Upsert --version 8.1.0
NuGet\Install-Package FlexLabs.EntityFrameworkCore.Upsert -Version 8.1.0
<PackageReference Include="FlexLabs.EntityFrameworkCore.Upsert" Version="8.1.0" />
paket add FlexLabs.EntityFrameworkCore.Upsert --version 8.1.0
#r "nuget: FlexLabs.EntityFrameworkCore.Upsert, 8.1.0"
// Install FlexLabs.EntityFrameworkCore.Upsert as a Cake Addin #addin nuget:?package=FlexLabs.EntityFrameworkCore.Upsert&version=8.1.0 // Install FlexLabs.EntityFrameworkCore.Upsert as a Cake Tool #tool nuget:?package=FlexLabs.EntityFrameworkCore.Upsert&version=8.1.0
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 media downloader for Plex, designed to seamlessly add content to your own Plex server!
|
|
Kukks/NNostr
A Nostr Relay and Client written in C#
|
Version | Downloads | Last updated |
---|---|---|
8.1.0 | 1,255 | 11/24/2024 |
8.0.0 | 887,909 | 12/3/2023 |
7.0.0 | 914,964 | 12/18/2022 |
7.0.0-beta.2 | 6,224 | 11/22/2022 |
7.0.0-beta.1 | 437 | 11/16/2022 |
6.0.2 | 456,513 | 11/16/2022 |
6.0.1 | 3,728,699 | 1/2/2022 |
6.0.0-preview5 | 57,217 | 7/11/2021 |
5.1.0 | 66,768 | 1/2/2022 |
5.0.0 | 363,693 | 7/11/2021 |
4.0.1 | 33,147 | 7/11/2021 |
4.0.0 | 378,942 | 3/2/2021 |
3.1.0 | 2,146,894 | 1/26/2020 |
3.0.0 | 106,860 | 9/29/2019 |
3.0.0-netcore3-00140 | 3,654 | 8/11/2019 |
2.2.1 | 108,921 | 9/17/2019 |
2.2.0 | 43,720 | 8/11/2019 |
2.1.2 | 87,617 | 5/22/2019 |
2.1.1 | 2,361 | 5/21/2019 |
2.1.0 | 2,900 | 5/19/2019 |
2.0.7 | 54,158 | 3/18/2019 |
2.0.6 | 11,337 | 2/6/2019 |
2.0.5 | 17,643 | 1/25/2019 |
2.0.4 | 8,733 | 1/3/2019 |
2.0.3 | 7,184 | 12/18/2018 |
2.0.2 | 12,147 | 11/3/2018 |
2.0.1 | 2,694 | 10/24/2018 |
2.0.0 | 11,220 | 9/19/2018 |
1.1.0 | 2,295 | 9/19/2018 |
1.0.4 | 14,103 | 3/10/2018 |
1.0.3 | 2,483 | 2/23/2018 |
1.0.2 | 2,297 | 2/20/2018 |
1.0.1 | 2,340 | 2/19/2018 |
1.0.0 | 3,601 | 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