在 EF Core 6.0 中测试 table IsTemporal
Test if table IsTemporal in EF Core 6.0
EF Core 6.0 现在支持 IsTemporal(),它允许您使用 MS-SQL 历史记录 table。在提交数据之前,我使用 DbContext.OnBeforeSaving() 来验证某些字段。如果 table 是临时的,那么我想保存更新此行的人的 UserId。
如何测试 table 是否是暂时的? (即通过下面的伪代码)
foreach (var entry in ChangeTracker.Entries<MyBaseEntityType>())
{
// if (entry is Temporal)
// set entry.Entity.UserID from IHttpContextAccessor.HttpContext.User
}
EF Core 6.0 now supports IsTemporal() which allows you to use an MS-SQL history table
估计你心里有数IsTemporal()
流利配置API喜欢
modelBuilder.Entity<MyTable>().ToTable(tableBuilder =>
tableBuilder.IsTemporal());
对于以这种方式配置的实体,有相应的 IsTemporal()
元数据扩展方法,例如(需要参考 Microsoft.EntityFrameworkCore.SqlServer
程序集)
foreach (var entry in ChangeTracker.Entries<MyBaseEntityType>())
{
if (entry.Metadata.IsTemporal())
{
// Do something
}
}
EF Core 6.0 现在支持 IsTemporal(),它允许您使用 MS-SQL 历史记录 table。在提交数据之前,我使用 DbContext.OnBeforeSaving() 来验证某些字段。如果 table 是临时的,那么我想保存更新此行的人的 UserId。
如何测试 table 是否是暂时的? (即通过下面的伪代码)
foreach (var entry in ChangeTracker.Entries<MyBaseEntityType>())
{
// if (entry is Temporal)
// set entry.Entity.UserID from IHttpContextAccessor.HttpContext.User
}
EF Core 6.0 now supports IsTemporal() which allows you to use an MS-SQL history table
估计你心里有数IsTemporal()
流利配置API喜欢
modelBuilder.Entity<MyTable>().ToTable(tableBuilder =>
tableBuilder.IsTemporal());
对于以这种方式配置的实体,有相应的 IsTemporal()
元数据扩展方法,例如(需要参考 Microsoft.EntityFrameworkCore.SqlServer
程序集)
foreach (var entry in ChangeTracker.Entries<MyBaseEntityType>())
{
if (entry.Metadata.IsTemporal())
{
// Do something
}
}