如何将时态表添加到EF Code-First DBContext?

问题描述 投票:1回答:1

我想将SQL临时表添加到DBContext中的项目中,而不要添加到迁移文件中吗?如何实现呢?编辑:我已将其添加到种子函数中,但仍无法正常工作

 protected override void Seed(MSDBContext context)
    {
        string sql = @"  ALTER TABLE dbo.Workshops

 ADD SysStartTime datetime2 GENERATED ALWAYS AS ROW START  
  CONSTRAINT DF_Workshops_SysStartTime DEFAULT SYSUTCDATETIME() NOT NULL,
  SysEndTime datetime2 GENERATED ALWAYS AS ROW END 
  CONSTRAINT DF_Workshops_SysEndTime DEFAULT CONVERT (DATETIME2, '9999-12-31 23:59:59') NOT NULL,
         PERIOD FOR SYSTEM_TIME (SysStartTime, SysEndTime)
  GO

  ALTER TABLE dbo.Workshops
      SET (SYSTEM_VERSIONING = ON (HISTORY_TABLE = dbo.WorkshopsHistory))
  GO";
        context.Database.ExecuteSqlCommand(sql);

        context.SaveChanges();

        context.Configuration.LazyLoadingEnabled = false;
    }
c# asp.net-mvc entity-framework code-first temporal-tables
1个回答
-1
投票

如果您只想创建表,则可以运行即席sql查询。

using (var ctx = new DBDataContext())
{
    var rowsEffected = ctx.Database.ExecuteSqlCommand("YOUR SQL TO ADD TABLES");
}

如果这行不通,则不必使用EF,则可以使用旧的ADO.NET sql客户端类来运行查询。

© www.soinside.com 2019 - 2024. All rights reserved.