实体框架没有执行存储过程

本文关键字:执行 存储过程 框架 实体 | 更新日期: 2023-09-27 18:13:06

我有以下一段代码:

using (var context = new MyContext())
        {
            context.Database.CommandTimeout = 5000;
            context.Database.ExecuteSqlCommand("EXEC [DBO].[SP_IMPORT_MYDATA]");
            context.SaveChanges();
        }

当我调用时,进程看起来正在运行,但数据库中没有更新任何内容。如果我直接从SQL Server Management Studio调用存储过程,那么它会立即启动并加载我的数据。有人看到哪里出错了吗?

为清楚起见,这是相同的SP被调用在SQL Server和它工作良好:

    USE [MyDB]
GO
DECLARE @return_value int
EXEC    @return_value = [dbo].[SP_IMPORT_MYDATA]
SELECT  'Return Value' = @return_value
GO

实体框架没有执行存储过程

为什么不能直接导入函数并从上下文中调用它呢?它应该可以正常执行。

从数据库更新模型,包括所需的存储过程。使用模型浏览器找到SP并执行"Add function import"

然后,你可以这样做:

context.SP_IMPORT_MYDATA();

更多信息:http://msdn.microsoft.com/en-us/library/vstudio/bb896231(v=vs.100).aspx