为什么在DBScaffold(.Net Core MVC)之后没有列出我的存储过程

问题描述 投票:1回答:1

我想运行一个参数化的存储过程,根据类型名称(或ID)列出电影。我试图在很多方面做到这一点,但我总是不尽如人意。基本上,在我有脚手架dbset之后,我的存储过程没有在模型下列出。

我遵循了this link的前六个步骤

  1. 创建存储过程
  2. 创建了ASP.NET核心MVC项目(我使用MVC - 作者没有,但我认为这应该还不错)
  3. 建立解决方案
  4. 已安装的SQL Server包(工具,SQL Server,Designer)
  5. 脚手架数据库使用以下代码: 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步。

c# sql-server asp.net-mvc asp.net-core
1个回答
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中执行存储过程;我希望它能帮助你。如果您需要更多信息,请与我们联系。 :)


推荐问答