如何从 ASP.NET Core 3.1 MySql.Data.EntityFrameworkCore 调用 MySQL 存储过程

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

我在 Mysql 中有一个存储过程,它返回一个表。

使用

_context.database.SqlQuery
等旧方法不再有效。
_context.database.Execute*
仅包含返回受影响行数的方法。

在我的场景中,我使用脚手架,无法从代码创建数据库对象,但我可以创建类。

以下代码(和/或类似的尝试

Set
Query
已过时)

_context.Set<MyModel>().FromSql("CALL My_USP({0});", parametervalue).ToList<MyModel>();

返回一个错误,表明模型不在

_context
中,因为我正在搭建脚手架,而
MyModel
是我的模型中的一个类。

我完全迷失了这个以及我在 S.O. 中能找到的所有帮助。或者 Google 是关于 EF6 的,这对我来说不起作用,库是不同的。

如果无法做到这一点,任何解决方法也将不胜感激。

mysql entity-framework asp.net-core stored-procedures entity-framework-core
1个回答
2
投票

添加到上下文文件中的

protected override void OnModelCreating(ModelBuilder modelBuilder)

modelBuilder.Entity<MyModel>().HasNoKey();

然后致电:

 _context.Set<MyModel>().FromSqlRaw("CALL My_USP({0});", parametervalue).ToList<MyModel>();
© www.soinside.com 2019 - 2024. All rights reserved.