我想运行一个参数化的存储过程,根据类型名称(或ID)列出电影。我试图在很多方面做到这一点,但我总是不尽如人意。基本上,在我有脚手架dbset之后,我的存储过程没有在模型下列出。
我遵循了this link的前六个步骤
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步。
在.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中执行存储过程;我希望它能帮助你。如果您需要更多信息,请与我们联系。 :)