EntityFrameworkCore.SqlServer.TemporalTable
1.1.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.1.0
NuGet\Install-Package EntityFrameworkCore.SqlServer.TemporalTable -Version 1.1.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.1.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="EntityFrameworkCore.SqlServer.TemporalTable" Version="1.1.0" />
<PackageReference Include="EntityFrameworkCore.SqlServer.TemporalTable" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add EntityFrameworkCore.SqlServer.TemporalTable --version 1.1.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: EntityFrameworkCore.SqlServer.TemporalTable, 1.1.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.
#:package EntityFrameworkCore.SqlServer.TemporalTable@1.1.0
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=EntityFrameworkCore.SqlServer.TemporalTable&version=1.1.0
#tool nuget:?package=EntityFrameworkCore.SqlServer.TemporalTable&version=1.1.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. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.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 | 418 | 11/1/2021 |
| 2.0.0-Preview | 655 | 10/17/2021 |
| 1.2.4 | 16,615 | 6/11/2021 |
| 1.2.3 | 534 | 6/11/2021 |
| 1.2.2 | 1,903 | 2/16/2021 |
| 1.2.1 | 1,547 | 1/26/2021 |
| 1.2.0 | 592 | 1/22/2021 |
| 1.1.0 | 588 | 1/21/2021 |
| 1.0.0 | 597 | 1/21/2021 |
- Added support for data consistency check.