从代码优先迁移创建链接服务器

时间:2014-10-27 20:41:30

标签: entity-framework-6 ef-migrations linked-server

我正在使用实体框架6和代码优先的方法。我需要创建一个链接服务器,我不确定在哪里这样做。

我只希望它运行一次。我想我应该为此创建一个迁移,但是我收到了这个错误:

程序' sys.sp_addlinkedserver'无法在交易中执行。

最好的方法是什么? 我很乐意在迁移开始之前做这件事,但我可以找到把它放在哪里。

2 个答案:

答案 0 :(得分:0)

EF尝试为您管理交易。 并且因为错误表明SP无法在事务内部调用。 如果你必须使用EF - > SQL命令方法
http://msdn.microsoft.com/en-us/library/vstudio/bb738523(v=vs.100).aspx

然而, 这种类型的活动显然不是DB中立的。 所以它更容易,在我看来更好,只是直接调用DB。

直接使用SQL代码调用SQL Server http://msdn.microsoft.com/en-us/library/ms171921.aspx

答案 1 :(得分:0)

易。将suppressTransaction设置为true,将其放入迁移脚本中。

EF6:

Sql(linkedServerScript, suppressTransaction: true);

EF7:

migrationBuilder.Sql(linkedServerScript, suppressTransaction: true);