存储过程仅使用 Count 执行
stored procedure only executes with Count
我有一个存储过程,我调用它与我的所有其他存储过程完全一样(工作正常)但它似乎只在我向它添加 Count() 时执行...
这是我的控制器代码:
public static void SaveGridLayout(string userName, string gridViewId, string layoutData)
{
using (var context = new Entities())
{
var userNameParam = new SqlParameter("@user_name", userName);
var gridViewIdParam = new SqlParameter("@grid_id", gridViewId);
var layoutParam = new SqlParameter("@layout", layoutData);
context.Database.SqlQuery<UserGridLayoutsEntity>("sp_SaveLayout @user_name, @grid_id, @layout", userNameParam, gridViewIdParam, layoutParam);
}
}
这不会给出任何结果,但是当我将最后一行更改为:context.Database.SqlQuery<UserGridLayoutsEntity>("sp_SaveLayout @user_name, @grid_id, @layout", userNameParam, gridViewIdParam, layoutParam).Count();
时,它会给出结果并执行 SP。以某种方式不必添加计数并从一开始就执行该过程会很好。
谢谢!
public static void SaveGridLayout(string userName, string gridViewId, string layoutData)
{
using (var context = new Entities())
{
var userNameParam = new SqlParameter("@user_name", userName);
var gridViewIdParam = new SqlParameter("@grid_id", gridViewId);
var layoutParam = new SqlParameter("@layout", layoutData);
context.Database.ExecuteSqlCommand("sp_SaveLayout @user_name, @grid_id, @layout", userNameParam, gridViewIdParam, layoutParam);
}
}
我觉得你可以这样直接执行。使用 .SqlQuery 你甚至可以使用 .ToList() 如果不是 .Count() 但 executesqlcommand 应该在你的情况下做得很好。
我有一个存储过程,我调用它与我的所有其他存储过程完全一样(工作正常)但它似乎只在我向它添加 Count() 时执行...
这是我的控制器代码:
public static void SaveGridLayout(string userName, string gridViewId, string layoutData)
{
using (var context = new Entities())
{
var userNameParam = new SqlParameter("@user_name", userName);
var gridViewIdParam = new SqlParameter("@grid_id", gridViewId);
var layoutParam = new SqlParameter("@layout", layoutData);
context.Database.SqlQuery<UserGridLayoutsEntity>("sp_SaveLayout @user_name, @grid_id, @layout", userNameParam, gridViewIdParam, layoutParam);
}
}
这不会给出任何结果,但是当我将最后一行更改为:context.Database.SqlQuery<UserGridLayoutsEntity>("sp_SaveLayout @user_name, @grid_id, @layout", userNameParam, gridViewIdParam, layoutParam).Count();
时,它会给出结果并执行 SP。以某种方式不必添加计数并从一开始就执行该过程会很好。
谢谢!
public static void SaveGridLayout(string userName, string gridViewId, string layoutData)
{
using (var context = new Entities())
{
var userNameParam = new SqlParameter("@user_name", userName);
var gridViewIdParam = new SqlParameter("@grid_id", gridViewId);
var layoutParam = new SqlParameter("@layout", layoutData);
context.Database.ExecuteSqlCommand("sp_SaveLayout @user_name, @grid_id, @layout", userNameParam, gridViewIdParam, layoutParam);
}
}
我觉得你可以这样直接执行。使用 .SqlQuery 你甚至可以使用 .ToList() 如果不是 .Count() 但 executesqlcommand 应该在你的情况下做得很好。