您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

是否可以使用LINQ从存储过程中返回返回值和结果集

是否可以使用LINQ从存储过程中返回返回值和结果集

在LINQ to sql DataContext设计器中通过从服务器资源管理器中拖动存储过程来创建存储过程时,设计器将分析该存储过程,以确定它是否返回结果集。除非它具有沉重的动态sql,否则通常都是这样。

如果是这样,则生成方法将返回ISingleResult<T>whereT是根据对sproc进行分析以生成适合结果集形状的类,或者是在sproc属性页中指定的类。因为ISingleResult从派生IEnumerable,大多数人对结果进行简单的foreach以获得他们的结果集。但大多数人忘记的是,ISingleResult 派生自IFunctionResult,其中有一个叫做财产@L_301_0@。 这是sproc的返回值。

因此,您所要做的只是以下几方面的事情:

using(var dc = new MyDataContext())
{
    var results = dc.MyStoredProcedure();
    var returnValue = (int)results.ReturnValue; // note that ReturnValue is of type object and must be cast.
    foreach(var row in results)
    {
        // process row
    }
}
其他 2022/1/1 18:42:50 有465人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶