我在Mysql中有一个存储过程,该存储过程返回一个表。
使用旧方法_context.database.SqlQuery
不再有效。
该_context.database.Execute*
只包含方法,受影响的行数的回报。
在我的场景中,我正在使用脚手架,无法通过代码创建数据库对象,但是可以创建类。
下面的代码(和/或具有类似的尝试Set
或Query
即过时)
_context.Set<MyModel>().FromSql("CALL My_USP({0});", parametervalue).ToList<MyModel>();
返回有关模型不在的错误,_context
因为我在搭建脚手架,并且MyModel
是我的模型中的类。
我对此一无所知,在SO或Google中可以找到的所有帮助都与EF6有关,在我的情况下不起作用,库是不同的。
如果这不可能,任何解决方法也将不胜感激。
我有一个解决方案,但我将标记为没有该旧ADO.NET的人或像这样更改我的dbcontext的答案,因为下次我将进行脚手架将失败。
添加到protected override void OnModelCreating(ModelBuilder modelBuilder)
上下文文件中:
modelBuilder.Entity<MyModel>().HasNoKey();
然后致电:
_context.Set<MyModel>().FromSqlRaw("CALL My_USP({0});", parametervalue).ToList<MyModel>();
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句