EntityFrameworkCore.SqlServer.TemporalTable
1.2.0
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package EntityFrameworkCore.SqlServer.TemporalTable --version 1.2.0
NuGet\Install-Package EntityFrameworkCore.SqlServer.TemporalTable -Version 1.2.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="EntityFrameworkCore.SqlServer.TemporalTable" Version="1.2.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add EntityFrameworkCore.SqlServer.TemporalTable --version 1.2.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: EntityFrameworkCore.SqlServer.TemporalTable, 1.2.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install EntityFrameworkCore.SqlServer.TemporalTable as a Cake Addin
#addin nuget:?package=EntityFrameworkCore.SqlServer.TemporalTable&version=1.2.0
// Install EntityFrameworkCore.SqlServer.TemporalTable as a Cake Tool
#tool nuget:?package=EntityFrameworkCore.SqlServer.TemporalTable&version=1.2.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Setup
- Add the following class in Startup project.
class EnhancedDesignTimeServices : IDesignTimeServices
{
public void ConfigureDesignTimeServices(IServiceCollection services)
{
services.AddSingleton<ICSharpMigrationOperationGenerator, TemporalCSharpMigrationOperationGenerator>();
}
}
- Use the following method to configure DbContext. UseInternalServiceProvider need to be called to let DbContext resolve depencdencies with the provider we have configure.
IServiceCollection services = new ServiceCollection();
services.AddDbContext<TemporalTestDbContext>((provider, options) =>
{
options.UseSqlServer(configuration.GetConnectionString("DefaultConnection"));
options.UseInternalServiceProvider(provider);
});
services.AddEntityFrameworkSqlServer();
services.RegisterTemporalTablesForDatabase();
var provider = services.BuildServiceProvider();
return provider.GetService<TemporalTestDbContext>();
Entity Configuration
- Enable temporal table for entity
modelBuilder.Entity<User>(b =>
{
b.ToTable("Users");
b.HasTemporalTable();
});
- Enable temporal table with custom start/end date column name
modelBuilder.Entity<TransactionRecord>(b =>
{
b.HasTemporalTable(config =>
{
config.StartDateColumn("ValidFrom");
config.EndDateColumn("NewValidTo");
});
});
- Optional. You may configure the history table name
modelBuilder.Entity<User>(b =>
{
b.ToTable("Users");
b.HasTemporalTable(config =>
{
config.HistorySchema("history");
config.HistoryTable("UserHistories");
});
});
Temporal Query
Example:
var transactions = context.Set<TransactionRecord>()
.FromTo(_InititalDate, _IncrementedDate)
.Select(t => new
{
Amount = t.Amount,
CreatedDate = t.CreatedDate,
SysStartDate = EF.Property<DateTime>(t, "ValidFrom"),
SysEndDate = EF.Property<DateTime>(t, "ValidFrom")
});
Supported Temporal Queries:
- AS OF <date_time>
- FROM <start_date_time> TO <end_date_time>
- BETWEEN <start_date_time> AND <end_date_time>
- CONTAINED IN (<start_date_time> , <end_date_time>)
- ALL
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 | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.1
- Microsoft.EntityFrameworkCore (>= 5.0.0)
- Microsoft.EntityFrameworkCore.Design (>= 5.0.0)
- Microsoft.EntityFrameworkCore.Relational (>= 5.0.0)
- Microsoft.EntityFrameworkCore.SqlServer (>= 5.0.0)
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 |
---|---|---|
2.0.1-Preview | 205 | 11/1/2021 |
2.0.0-Preview | 323 | 10/17/2021 |
1.2.4 | 12,066 | 6/11/2021 |
1.2.3 | 365 | 6/11/2021 |
1.2.2 | 1,683 | 2/16/2021 |
1.2.1 | 1,359 | 1/26/2021 |
1.2.0 | 418 | 1/22/2021 |
1.1.0 | 414 | 1/21/2021 |
1.0.0 | 420 | 1/21/2021 |
- Fix SqlException when inserting data into temporal table.