我有一个返回DataSet的存储过程。这个存储过程通过实体数据模型在我的C#代码中公开。如何在我的代码中获取DataSet?上下文不断尝试自动生成强类型对象集。但是,这些对象仅代表第一个结果集。我的DataSet中有4个结果集。这是我正在使用的代码:
using (DBDataContext context = new DBDataContext())
{
var myDataSet = context.LoadData(); // Load data is the name of my sproc
// how do I get a DataSet here?
}
如何通过LINQ-to-SQL或LINQ-to-EntityDataModel或其他任何方式获取DataSet?
非常感谢您的帮助
答案 0 :(得分:1)
如果您有多个结果集,那么您需要编写一些代码 - 但这并不难:
网上有一些例子 - 例如:
他们主要展示了扩展部分datacontext所需的内容,例如:
<FunctionAttribute(Name:="dbo.GetMultipleSets")> _
<ResultType(GetType(Type_1))> _
<ResultType(GetType(Type_2))> _
Public Function GetMultipleSets() As IMultipleResults
Dim result As IExecuteResult = Me.ExecuteMethodCall(Me, CType(MethodInfo.GetCurrentMethod, MethodInfo))
Dim results As IMultipleResults = DirectCast(result.ReturnValue, IMultipleResults)
Return results
End Function
或在C#中像:
[Function("dbo.GetMultipleSets"]
[ResultType(typeof(Type_1))]
[ResultType(typeof(Type_2))]
public IMultipleResults GetMultipleSets()
{
IExecuteResult result = ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod()));
IMultipleResults results = (IMultipleResults)result.ReturnValue;
return results;
}
希望有所帮助
斯图尔特