Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何调用EF core和Asp.net core中的存储过程?_C#_Asp.net_Entity Framework_Asp.net Core - Fatal编程技术网

C# 如何调用EF core和Asp.net core中的存储过程?

C# 如何调用EF core和Asp.net core中的存储过程?,c#,asp.net,entity-framework,asp.net-core,C#,Asp.net,Entity Framework,Asp.net Core,我有一个基本的存储过程 alter-PROCEDURE-SearchMovies @类别ID varchar(50)=空 作为… 我从数据层打了一些电话: var categoryIds = new SqlParameter("CategoryIds", "6"); var aaa = entities.FromSql("EXECUTE dbo.SearchMovies @CategoryIds", categoryIds ); => empty values

我有一个基本的存储过程

alter-PROCEDURE-SearchMovies
@类别ID varchar(50)=空 作为…

我从数据层打了一些电话:

    var categoryIds = new SqlParameter("CategoryIds", "6");

     var aaa = entities.FromSql("EXECUTE dbo.SearchMovies @CategoryIds", categoryIds ); => empty values

     var bbb= entities.FromSql("EXECUTE dbo.SearchMovies @CategoryIds={0}", categoryIds ); => error: Must declare the scalar variable "@p0".

     var ccc= entities.FromSql("EXECUTE dbo.SearchMovies @CategoryIds={0}", "6");  => works
那么,为什么前两个电话不起作用呢

谢谢大家

更新:

看来我把事情搞砸了

 var categoryIds = new SqlParameter("@CategoryIds", "6");
entities.FromSql("EXECUTE dbo.SearchMovies @CategoryIds", categoryIds )
很好


谢谢大家的帮助。

参数的名称是
@CategoryIds
,而不是
CategoryIds
,因此将第一行更改为:

var categoryIds = new SqlParameter("@CategoryIds", 6);

您是否尝试将值转换为字符串,因为您的过程需要VARCHAR

var categoryIds = new SqlParameter("CategoryIds", Convert.ToString(6));

将第二个查询更改为:
entities.FromSql(“EXECUTE dbo.SearchMovies@CategoryIds”,CategoryIds)并尝试一下。在这种情况下不需要占位符。@Siva Gopal是的,我已经在第一次调用中尝试过它=>空结果
不工作是什么意思?首先,参数名是错误的。SQL Server参数始终具有
@
前缀。你有错误吗,没有结果?只需在链接下浏览。你可能会得到你的答案。entities.FromSql(“执行dbo.SearchMovies@CategoryIds”,CategoryIds);使用新的SqlParameter(“@CategoryIds”,6)=>仍然显示为空,另外2个显示错误,如上所述。“真奇怪!”namvo用问题本身而不是评论来解释问题。张贴实际错误。语法错误仍将导致异常。”Show empty`不是问题描述,也不是问题。如果没有匹配行,为什么查询要返回某些内容?存储过程到底做了什么?此外,
Convert.Tostring
只不过是调用
whateverType.Tostring()