我需要使用Entity Framework执行存储过程。
通常我称之为:
this.Context.Database.ExecuteSqlCommand("EXEC edi_UploadTransmission");
但是,此特定存储过程包括访问链接服务器。
由于EF在事务中包装ExecuteSqlCommand
,因此它失败了,因为事务中不支持链接服务器(据我所知)。
有没有办法在不使用Entity Framework的情况下使用Entity Framework执行此存储过程?
答案 0 :(得分:8)
将TransactionalBehavior.DoNotEnsureTransaction
作为ExecuteSqlCommand
方法的第一个参数传递。
例如,
this.Context.Database.ExecuteSqlCommand(TransactionalBehavior.DoNotEnsureTransaction, "EXEC edi_UploadTransmission");
答案 1 :(得分:1)
我的建议是不要在代码的这一部分使用EF。您可以将EF与直接ADO.NET代码或其他ORM(如Dapper或Chain)自由组合。
https://github.com/docevaad/Chain/wiki/A-Chain-comparison-to-Dapper