我想运行一个参数化的存储过程,该过程根据类型名称(或ID)列出电影。我已经尝试了很多方法来做到这一点,但是我总是以失败告终。基本上,在搭建dbset之后,我的存储过程就不会在模型下列出。
我已经按照this link
中的前六个步骤进行操作创建存储过程
创建了ASP.NET Core MVC项目(我使用了MVC-作者没有使用,但是我认为这样做应该还可以)
内置解决方案
已安装的SQL Server程序包(工具,SQL Server,Designer)
使用以下代码折叠式数据库:
Scaffold-DbContext "Server=SQL SERVER (e.g localhost);Database=DATABASE (e.g db_core_sp_call);Trusted_Connection=True;user id=SQL USERNAME;password=SQL PASSWORD;"
Microsoft.EntityFrameworkCore.SqlServer
-OutputDir Models/DB
除了未列出我的存储过程之外,这些步骤似乎都很成功。有人对我在这里应该做什么有建议吗?我也尝试以不同的方式做到这一点。这似乎是最简单的方法,但我无法跳过第5步。
答案 0 :(得分:0)
在.net中,核心支架用于将SQL表支架到实体。没有选项可以架置存储过程,但是您可以执行存储过程。跟踪问题:stored procedure mapping support是未解决的问题。
如果您需要使用参数执行存储过程。
用于执行原始SQL查询:
var students = _dbContext.Students.FromSql("EXECUTE dbo.GetStudents {0}",studentId).ToList();
如果您需要在存储过程中执行insert / update / delete命令,请使用ExecuteSqlCommand
方法。
_dbContext.Database.ExecuteSqlCommand("InsertStudents @id,@name",
new System.Data.SqlClient.SqlParameter("@id", studentId),
new System.Data.SqlClient.SqlParameter("@name", name));
这样,您可以在ASP.NET Core中执行存储过程;希望对您有帮助。让我知道是否需要更多信息。 :)