我正在使用实体框架6和代码优先的方法。我需要创建一个链接服务器,我不确定在哪里这样做。
我只希望它运行一次。我想我应该为此创建一个迁移,但是我收到了这个错误:
程序' sys.sp_addlinkedserver'无法在交易中执行。
最好的方法是什么? 我很乐意在迁移开始之前做这件事,但我可以找到把它放在哪里。
答案 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);