簡體   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