Entity framework 如何创建SQL Server系统表

Entity framework 如何创建SQL Server系统表,entity-framework,tsql,entity-framework-migrations,Entity Framework,Tsql,Entity Framework Migrations,我正在开发一个站点,它首先使用实体框架代码进行迁移。每次发布主要版本后,我都会复制一份生产数据,并在我的开发环境中进行设置。我发现,为了在迁移中使用生产数据副本,有必要将\uu MigrationHistory表从旧的开发数据库映像复制到生产数据库副本 这很好,除了一个恼人的细节:\u MigrationHistory表作为用户表而不是系统表出现。这不是一个严重的问题,只要我记得从数据库差异中过滤出来。但是我更希望新的\uu MigrationHistory表是一个系统表,就像它在EF migr

我正在开发一个站点,它首先使用实体框架代码进行迁移。每次发布主要版本后,我都会复制一份生产数据,并在我的开发环境中进行设置。我发现,为了在迁移中使用生产数据副本,有必要将
\uu MigrationHistory
表从旧的开发数据库映像复制到生产数据库副本

这很好,除了一个恼人的细节:
\u MigrationHistory
表作为用户表而不是系统表出现。这不是一个严重的问题,只要我记得从数据库差异中过滤出来。但是我更希望新的
\uu MigrationHistory
表是一个系统表,就像它在EF migrations创建的数据库中一样


是否有一种方法可以创建或复制SQL Server表,使其看起来像一个系统表?

据我所知,这不是建议的做法

作为一个可能的解决方案,我建议声明一个新的模式,如ETL或Mig,并为该模式分配安全措施(如果您关心这些事情)。这将有助于将“_MigrationHistory”表与其他用户表分开

编辑: 只是在另一个问题中发现了这一点,如果你决心这样做,也许会有所帮助。

使用以下命令将表格更改为系统对象。因此,它将出现在系统对象中

EXEC sys.sp_MS_marksystemobject _MigrationHistory

我之所以将此标记为答案,是因为引用了另一个问题,但我找不到(这个问题可以说是重复的)。我同意使用sp_ms_marksystemobject应该非常谨慎,但我认为在这种情况下这是合理的。