我想执行一个存储过程,它返回三个值(Email,Name,CompanyID)并获取一个参数(CompanyID),但它不起作用。
我创建了一个具有这些属性的类和一个返回数据的存储过程。它显示DatabaseFacade
错误。
我的代码是:
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'的定义,也没有扩展方法'SqlQuery'接受类型为'DatabaseFacade'的第一个参数(你是否缺少using指令或汇编引用?)
答案 0 :(得分:1)
从此链接https://docs.microsoft.com/en-us/ef/core/querying/raw-sql寻求帮助
在Core 2.0或EntityFramework 7中,不支持Sql 6的功能,该功能在ef 6的早期版本中可用。
下面是在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();
}
注意:在要在主db上下文类下添加DbSet的位置添加此方法,然后通过实例化dbContext调用此方法。