实体框架不执行存储过程

时间:2014-07-16 09:37:18

标签: c# entity-framework stored-procedures

我有以下代码:

using (var context = new MyContext())
        {
            context.Database.CommandTimeout = 5000;

            context.Database.ExecuteSqlCommand("EXEC [DBO].[SP_IMPORT_MYDATA]");

            context.SaveChanges();
        }

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

为清楚起见,这是在SQL Server中调用的相同SP,它可以正常工作:

    USE [MyDB]
GO

DECLARE @return_value int

EXEC    @return_value = [dbo].[SP_IMPORT_MYDATA]

SELECT  'Return Value' = @return_value

GO

1 个答案:

答案 0 :(得分:-1)

为什么不能直接导入该函数并直接从上下文中调用它?它应该执行得很好。

从数据库更新模型,包括所需的存储过程。 使用模型浏览器查找SP并执行“添加功能导入”

然后,你可以这样做:

context.SP_IMPORT_MYDATA();

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