msj*_*han 2 database migration entity-framework ef-code-first sqlfilestream
我们为我的dataaccess层启用了一些POCO类和迁移,我们创建了一个初始迁移 - 注意我们使用CreateDatabaseIfNotExist数据库初始化.
但是在数据库中我希望有一个使用SQL Filestream的MessageBody字段,因为文件流的EF限制 - 我们尝试在迁移脚本中手动完成.
我们执行以下sql命令.
Sql("alter table [msg].[Message] add [MessageBody] varbinary(max) FILESTREAM not null");
Run Code Online (Sandbox Code Playgroud)
但我必须设置文件流选项

所以我想在迁移期间/之前执行以下命令.
ALTER DATABASE CURRENT SET FILESTREAM ( NON_TRANSACTED_ACCESS = FULL)
Run Code Online (Sandbox Code Playgroud)
但是当添加这个bedore时,表的创建我得到错误:多语句事务中不允许ALTER DATABASE语句.
当您想自动创建数据库时,调整数据库选项的最佳方法是什么?是否有可能在进程执行实际迁移之前拦截迁移进程以执行某些sql?
要修复发生给您的错误,您只需要将其他bool参数设置为true来调用Sql方法:
Sql("alter table [msg].[Message] add [MessageBody] varbinary(max) FILESTREAM not null", true);
Run Code Online (Sandbox Code Playgroud)
这将导致您的查询将在单独的事务中执行.
| 归档时间: |
|
| 查看次数: |
805 次 |
| 最近记录: |