【问题标题】:Return type for stored procedure returning ints存储过程返回整数的返回类型
【发布时间】:2014-02-13 15:50:00
【问题描述】:

我有一个带有简单 SELECT 语句的存储过程:

SELECT UserId FROM SomeTable

我发现我需要创建一个新对象才能将其包装在 LINQ 中。

[FunctionAttribute(Name = "dbo.MyProc")]
[ResultType(typeof(ISingleResult<TestClass>))]
public ISingleResult<TestClass> GetMyProc([Parameter(Name = "SomeId", DbType = "Int")]int someId, [Parameter(Name = "AnotherId", DbType = "Int")]int anotherId)
{
     var result = ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())), someId, anotherId);
     return (ISingleResult<TestClass>)(result.ReturnValue);
}

必须添加这个类:

public class TestClass
{
    [Column(Name = "UserId", DbType = "Int")]
    public string UserId { get; set; }
}

这似乎有点荒谬。在这种情况下,我可以避免创建 TestClass 吗?

【问题讨论】:

    标签: asp.net linq stored-procedures linq-to-sql


    【解决方案1】:

    在这种情况下,我可以避免创建 TestClass 吗?

    不适用于您当前使用的框架。

    还有很多其他选择。您可以直接使用 ADO.NET;但是你正在使用DataTable 而不是TestClass。你可以使用 Dapper;你仍然需要TestClass,但你不需要GetMyProc。您可以使用生成代码的框架,例如 EF 数据模型或其他一些第三方框架。

    但一般来说,数据需要编组成某种东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多