我正在
'ABC.Security.GetUserLocation'附近的语法不正确。
使用以下代码执行存储过程时。
.
点是Name的一部分(用于分组),不要将它与Schema混淆。
像“FirstName.LastName”之类的东西。我可以毫无问题地从SSMS执行它。
var userNameToSearch = new SqlParameter("@userName", userName);
userNameToSearch.DbType = System.Data.DbType.String;
userNameToSearch.Size = 100;
List<Location> locations = db.Database.SqlQuery<Location>(@"[ABC.Security.GetUserLocation]", userNameToSearch).ToList();
return locations;
使用C#代码中的名称的正确方法是什么?
答案 0 :(得分:1)
您可以按如下方式在DbContext类中调用存储过程。
this.Database.SqlQuery<YourEntityType>("storedProcedureName",params);
这里有更多信息:https://msdn.microsoft.com/en-us/data/jj691402.aspx
这是这个问题的答案:here
答案 1 :(得分:1)
尝试明确参数
List<Location> locations = db.Database.SqlQuery<Location>(@"exec [ABC.Security.GetUserLocation] {0}", userNameToSearch).ToList();
&#34; {0}&#34;意味着您将 userNameToSearch 作为第一个参数传递,并不重要参数的名称。