我在 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 的,这对我来说不起作用,库是不同的。
如果无法做到这一点,任何解决方法也将不胜感激。
添加到上下文文件中的
protected override void OnModelCreating(ModelBuilder modelBuilder)
:
modelBuilder.Entity<MyModel>().HasNoKey();
然后致电:
_context.Set<MyModel>().FromSqlRaw("CALL My_USP({0});", parametervalue).ToList<MyModel>();