執行非查詢程序不工作的asp.net核心

asp.net-core asp.net-core-mvc entity-framework-core linq stored-procedures

我想執行一個存儲過程,它返回三個值(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指令或彙編引用?)

熱門答案

從這個鏈接獲取幫助https://docs.microsoft.com/en-us/ef/core/querying/raw-sql

在Core 2.0或EntityFramework 7中,不支持以前版本的ef 6中提供的SqlQuery功能。

下面是如何在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來調用此方法。



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow