MAD.Extensions.EFCore
3.0.3
See the version list below for details.
dotnet add package MAD.Extensions.EFCore --version 3.0.3
NuGet\Install-Package MAD.Extensions.EFCore -Version 3.0.3
<PackageReference Include="MAD.Extensions.EFCore" Version="3.0.3" />
paket add MAD.Extensions.EFCore --version 3.0.3
#r "nuget: MAD.Extensions.EFCore, 3.0.3"
// Install MAD.Extensions.EFCore as a Cake Addin #addin nuget:?package=MAD.Extensions.EFCore&version=3.0.3 // Install MAD.Extensions.EFCore as a Cake Tool #tool nuget:?package=MAD.Extensions.EFCore&version=3.0.3
MAD.Extensions.EFCore: A library for .NET Core & .NET that provides extended functionality for Entity Framework Core
MAD.Extensions.EFCore is inspired by borisdj's EFCore.BulkExtensions library, and currently provides an extension to "Upsert" (Insert or Update) an object with a single method call using Entity Framework Core.
Supported Platforms
MAD.Extensions.EFCore currently supports the following platforms:
- .NET Standard 2.1
- .NET Core 3.1
- .NET 5
- .NET 6
Installation
- Nuget Package Manager:
MAD.Extensions.EFCore
- Package Manager Console:
Install-Package MAD.Extensions.EFCore
- .NET CLI:
dotnet add package MAD.Extensions.EFCore
Upserting Objects
To upsert an object using your DbContext, add the following using statement to your class to access the extension method:
using MAD.Extensions.EFCore;
Then call the Upsert method and pass through your entity as a parameter:
dbContext.Upsert(entity);
dbContext.SaveChanges();
Shadow Properties
Previous versions of MAD.Extensions.EFCore required shadow property values to be set manually using the transformations action on the upsert method:
dbContext.Upsert(entity, childEntity =>
{
switch (childEntity)
{
case ChildEntity:
dbContext.Entry(childEntity).Property("ParentId").CurrentValue = entity.Id;
break;
}
});
dbContext.SaveChanges();
As of v3.0.1 and v6.0.1, MAD.Extensions.EFCore will automatically populate these shadow properties for any child entities underneath the entity passed to the upsert method.
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
- Microsoft.EntityFrameworkCore.Relational (>= 3.1.7)
- SqlKata.Execution (>= 2.3.7)
-
.NETStandard 2.1
- Microsoft.EntityFrameworkCore.Relational (>= 3.1.7)
- SqlKata.Execution (>= 2.3.7)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.