【发布时间】:2009-03-04 01:47:19
【问题描述】:
我在确定 c# 和 LINQ 如何解决处理不一定返回表结构而是返回结果集的数据结构的常见问题时遇到了问题。
我有一个有效的存储过程,并将其包含在我的 DBML 中
[Function(Name="dbo.p_GetObject")]
public int p_GetObject([Parameter(Name="ObjectType", DbType="NVarChar(200)")] string objectType, [Parameter(Name="ItemState", DbType="Bit")] System.Nullable<bool> itemState, [Parameter(Name="IsPublished", DbType="Bit")] System.Nullable<bool> isPublished)
{
IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())), objectType, itemState, isPublished);
return ((int)(result.ReturnValue));
}
dbml 说返回类型是 (None),这可能是症结所在。但是我没有与结果集匹配的 DBML 对象。
SP 采用三个参数,并返回一个包含多行的三列(ID、名称、值)的结果集。我可以为此创建一个数据对象,并将其命名为 resultSet
当我为此编写函数调用时,我卡住了:
public List<resultset> GetObject(string objectType, bool itemState, bool isPublished)
{
MyDataContext.p_GetObject(objectType, itemState, isPublished);
}
我的问题是:
如何让存储过程的数据上下文调用填充我的 resultSet 对象?有更好的方法吗?返回类型应该是什么? SQL 视图?寻找好的建议...
【问题讨论】:
标签: sql linq linq-to-sql stored-procedures