在c#ef中使用存储过程

时间:2017-03-07 17:55:59

标签: wpf entity-framework stored-procedures

我在SQL Server中有一个存储过程:

Create PROCEDURE SPLogCountInUser
    (@ManegerID int)
AS
  SELECT COUNT(*) AS LogDone 
  FROM vw_UserApprove
  WHERE UserMasterID = @ManegerID AND UserState = 0

我想使用此过程向我展示WPF实体框架中此存储过程的输出。

我的WPF窗口中有一个标签,我想让它向我展示上述程序的输出。我的代码是这样的,但它不起作用:

        HadishDataBaseEntities database = new HadishDataBaseEntities();
        var All = database.SPLogCountInUser(HadishCode.gUserID);
        lbl_Log.Content = All.ToList();

3 个答案:

答案 0 :(得分:0)

你可以这样做:

HadishDataBaseEntities database = new HadishDataBaseEntities();
var All = database.Database.SqlQuery<int>("SPLogCountInUser @ManegerID", HadishCode.gUserID);
lbl_Log.Content = All.First(); //Your stored procedure will always return one row, so we don't need ToList(), additionally the label will not show the actual value if you set its content to a List.

答案 1 :(得分:0)

什么“不起作用”是什么意思?您是收到编译错误,运行时异常还是意外结果?请在aska问题时指定此内容。

您的SPLogCountInUser方法的返回类型是什么?如果是IEnumerable,您可以将Content的{​​{1}}属性设置为第一项的字符串表示形式:

Label

答案 2 :(得分:0)

我认为.ToList();如果您希望SP获得一些有意义的价值,则必须添加。 我犯了这样的错误.ToList()并没有得到任何东西,即使我知道SQL调用是正确的。 但是在添加.ToList()之后;然后返回值是一个List,你可以找到你的值。

相关问题