我想执行一个存储过程,该过程返回三个值(电子邮件、姓名、公司 ID)并获取一个参数(公司 ID),但它不起作用。
我创建了一个具有这些属性的类和一个返回数据的存储过程。由它显示DatabaseFacade
error.
我的代码是:
List<MyClass> AppUser = new List<MyClass>(); //Class with three properties
SqlParameter param1 = new SqlParameter("@CompanyID", CompanyID);
AppUser = _context.Database.SqlQuery<CC>("GetUserAndRolesForCompany", param1).ToList();
显示此错误:我已包含 System.Linq
“DatabaseFacade”不包含“SqlQuery”的定义,并且找不到接受“DatabaseFacade”类型的第一个参数的扩展方法“SqlQuery”(您是否缺少 using 指令或程序集引用?)
从此链接获取帮助https://learn.microsoft.com/en-us/ef/core/querying/raw-sql
在 Core 2.0 或 Entity Framework 7 中,不支持以前版本的 ef 6 中提供的 Sql 查询功能。
下面是如何在 EntityFramework 7 中执行 sp 的示例。
public List<UserDetails> GetUserDetailsUsingSP(int LoggedInID)
{
var loggedInUser = new SqlParameter("Id", LoggedInID);
return WidServices
.FromSql("EXECUTE WID_Services_GetAll @Id ", loggedInUser)
.FirstOrDefault();
}
注意:在主数据库上下文类下添加 DbSet 时添加此方法,然后通过实例化 dbContext 来调用此方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)