在生成用于数据库迁移的MS脚本时,通常会在顶部使用SET命令,例如
BEGIN TRANSACTION
SET QUOTED_IDENTIFIER ON
SET ARITHABORT ON
SET NUMERIC_ROUNDABORT OFF
SET CONCAT_NULL_YIELDS_NULL ON
SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
COMMIT
GO
由于任何迁移脚本都可以根据当前的数据库迁移版本运行,因此大概每个脚本都需要有这个“头”。
有没有更好的方法来解决这个问题?这些设置是否可以在每次迁移时运行一
标题有点混乱,但我想说明的是,问题不是先启动代码模型,然后再对现有数据库进行迁移。
我需要激活自动迁移,因为我们切换到了系统的代码优先模型。以下是我们所做的工作:
我为现有数据库创建了一个空的InitialCreate。
我做了一些其他脚本,因为有一些更改,这些更改正常工作,脚本是在数据库上创建和运行的。
当我想使用这些脚本并迁移另一个尚未以这种方式初始化的数据库时,问题就会发生。该怎么办呢。
当我尝试运行更新数据库时,我会得到以下错误:
Unable to update database to match the current model because there are
我和ef陷入了一个奇怪的僵局,它坚持实现一个糟糕的迁移,无论我做什么,它都会在sql中设置时间(对于TimeSpan)。
我已经删除了数据库和迁移文件夹,并重新部署了无数次,并且遵循每个人的版本来修复不需要的迁移,而不去看。如果我在没有数据库和迁移文件夹的情况下执行脚本迁移(所以没有上下文、模型、快照等)sql脚本想要添加以下内容
ALTER TABLE [TimeCards] ADD [Time] time NOT NULL DEFAULT '00:00:00';
GO
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [