繁体   English   中英

如何在EF核心和Asp.net核心中调用Stored Proc?

[英]how to call Stored Proc in EF core and Asp.net core?

我有一个基本的存储过程SearchMovies

alter PROCEDURE SearchMovies
@CategoryIds varchar(50) = null AS ...

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

    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

所以前两个调用为什么不起作用,我遵循了https://docs.microsoft.com/zh-cn/ef/core/querying/raw-sql

谢谢大家

更新:

看起来我搞砸了。

 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));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM