更新:
我想执行存储的proc或sql命令,它重新运行两个值。
我试图用ExecuteStoreCommand
首先我尝试发送纯粹的sql
var sqlReturn = repository.ExecuteStoreCommand("select count(*) as 'Count' FROM
[mydb].[dbo].[mytable]"); //returns -1
但它总是返回-1
。
然后我创建了存储过程
CREATE PROCEDURE TestCount
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
select count(*) as 'Count' FROM [mydb].[dbo].[mytable]
END
GO
但是当我打电话给我时,我得到了相同的-1
结果:
var spReturn = repository.ExecuteStoreCommand("exec dbo.TestCount"); //returns -1
那么有什么方法可以在Entity Framework中做到这一点而不将任何内容导入到模型中?
上面的代码只是举例,但是当我发现如何从sql获取值时,查询将会非常复杂,我需要返回count和另一个计算值。
答案 0 :(得分:3)
您需要使用ExecuteStoreQuery方法来检索值。 ExecuteStoreCommand
将返回受影响的行数。如果执行Select语句,则不会影响任何行。查看How to: Directly Execute Commands Against the Data Source以获取示例。