【问题标题】:Change database options during EF migration在 EF 迁移期间更改数据库选项
【发布时间】:2015-06-15 23:54:27
【问题描述】:

我们为我的数据访问层启用了一些 POCO 类和迁移,我们创建了一个初始迁移到 - 注意我们使用 CreateDatabaseIfNotExist 数据库初始化。

但是在数据库中,我希望有一个使用 SQL Filestream 的 MessageBody 字段,因为 Filestream 的 EF 限制 - 我们尝试在迁移脚本中手动执行。

我们执行下面的sql命令。

Sql("alter table [msg].[Message] add [MessageBody] varbinary(max) FILESTREAM not null");

但我必须设置文件流选项

所以我想在迁移期间/之前执行以下命令。

ALTER DATABASE CURRENT SET FILESTREAM ( NON_TRANSACTED_ACCESS = FULL)

但是在创建表时添加此文件时出现错误:多语句事务中不允许使用 ALTER DATABASE 语句。

当您想自动创建数据库时,调整数据库选项的最佳方法是什么?是否可以在进程执行实际迁移之前拦截迁移过程以执行一些sql?

【问题讨论】:

标签: database entity-framework ef-code-first migration sqlfilestream


【解决方案1】:

要修复发生在您身上的错误,您只需调用 Sql 方法,并将附加 bool 参数设置为 true:

Sql("alter table [msg].[Message] add [MessageBody] varbinary(max) FILESTREAM not null", true);

这将导致您的查询将在单独的事务中执行。

【讨论】:

    猜你喜欢
    • 2019-02-25
    • 2018-03-22
    • 1970-01-01
    • 2014-02-19
    • 2016-01-11
    • 2016-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多