【问题标题】:Load DataSet via LINQ-to-SQl通过 LINQ-to-SQl 加载数据集
【发布时间】:2011-08-22 15:02:46
【问题描述】:

我有一个返回 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 或其他名称获取数据集?

非常感谢您的帮助

【问题讨论】:

标签: c# linq


【解决方案1】:

如果您有多个结果集,那么您需要编写一些代码——但这并不难:

网上有一些例子——例如:

它们主要显示扩展部分数据上下文所需的内容,例如:

    <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;
    }

希望有帮助

斯图尔特

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-25
    • 1970-01-01
    • 1970-01-01
    • 2014-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多