我有一个带有简单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吗?
答案 0 :(得分:1)
在这种情况下,我可以避免创建TestClass吗?
不使用您当前使用的框架。
还有很多其他选择。您可以直接使用ADO.NET;但是,您正在使用DataTable
代替TestClass
。你可以使用Dapper;您仍需要TestClass
,但不需要GetMyProc
。您可以使用生成代码的框架,如EF数据模型或其他第三方框架。
但总的来说,数据需要整理成一些东西。