You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

自定义Schema下Temporal Tables结合LINQ无历史数据问题求助

如何在自定义Schema与LINQ环境下配置Temporal Tables使其正常工作?

开发环境

  • .NET 6
  • Microsoft SQL Server 2019 (RTM-GDR) (KB5014356) - 15.0.2095.3 (X64),发布于2022年4月29日 18:00:13,运行在Windows 10 Pro 10.0 (Build 19044)系统上的64位Express版本

问题现象

Temporal Tables在[dbo]默认Schema下可正常运行,但切换到[pm]这类自定义Schema后,使用LINQ插入数据,历史表中无数据生成。

问题重现步骤

  • 创建新数据库
  • 创建启用SYSTEM_VERSIONING = ON的新表
  • 为Bookmark实体创建简单EF Core模型
  • 在OnModelCreating中配置时态表:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder
        .Entity<Bookmark>()
        .ToTable("Bookmark", b => b.IsTemporal());
}
  • 使用LINQ向Bookmark表插入数据

相关T-SQL代码

-- 创建数据库
CREATE DATABASE [SampleDb]
GO
USE [SampleDb]
GO
-- 创建自定义Schema
CREATE SCHEMA [pm] AUTHORIZATION [dbo]
GO
-- 创建启用系统版本控制的表
CREATE TABLE [pm].[Bookmark](
    [Id] [uniqueidentifier] NOT NULL,
    [Description] [nvarchar](max) NOT NULL,
    [PeriodStart] DATETIME2 GENERATED ALWAYS AS ROW START HIDDEN NOT NULL DEFAULT '0001-01-01T00:00:00.0000000', 
    [PeriodEnd] DATETIME2  GENERATED ALWAYS AS ROW END HIDDEN NOT NULL DEFAULT '9999-12-31T23:59:59.9999999',
    PERIOD FOR SYSTEM_TIME ([PeriodStart], [PeriodEnd]),
 CONSTRAINT [Pk_Bookmark_Id] PRIMARY KEY CLUSTERED 
(
    [Id] ASC
)WITH (STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
WITH (SYSTEM_VERSIONING = ON (HISTORY_TABLE = [pm].[BookmarkHistory], DATA_CONSISTENCY_CHECK = ON))
GO
-- LINQ生成的插入语句(自定义Schema下)
EXEC sp_executesql N'SET NOCOUNT ON;
INSERT INTO [pm].[Bookmark] ([Id],[Description])
VALUES (@p0, @p1);
SELECT [PeriodEnd], [PeriodStart]
FROM [pm].[Bookmark]
WHERE @@ROWCOUNT = 1 AND [Id] = @p0;',
N'@p0 uniqueidentifier,@p1 nvarchar(4000)'
,@p0='3ED9066F-4902-4626-A16B-BC3594308AFB',@p1='test'
GO
-- 查询结果
SELECT *,[PeriodStart],[PeriodEnd] FROM [pm].[Bookmark]
GO
SELECT * FROM [pm].[BookmarkHistory]

参考链接

内容的提问来源于stack exchange,提问作者Thuat Nguyen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 00:55:12