返回int的存储过程的返回类型

时间:2014-02-13 15:50:00

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

我有一个带有简单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吗?

1 个答案:

答案 0 :(得分:1)

  

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

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

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

但总的来说,数据需要整理成一些东西。