实体框架,存储过程,返回多个临时表?

时间:2017-10-23 15:54:44

标签: c# entity-framework stored-procedures

解决此问题的最简单,最简单的方法是什么。我有一个复杂的存储过程,返回两个临时表。

如何在实体框架edmx文件中显示这些表?或者这样的事情不可能吗?最终结果我需要两个临时表都在他们自己的模型中。 SP接受2个参数作为输入。

目前我正在使用此方法。但只有一个表返回,我也没有列名。它们只作为数组对象返回。我必须手动将它映射到一个不理想,乏味和黑客的模型。

        SqlCommand command = new SqlCommand("returnTwoTablesSP", connection);
        command.CommandType = System.Data.CommandType.StoredProcedure;
        command.Parameters.AddWithValue("@DataDateFrom", string.Empty);
        command.Parameters.AddWithValue("@DataDateTo", string.Empty);

     List<TwoTableModel> tableList = new List<string>();

    SqlDataReader reader = command.ExecuteReader();
    while (reader.Read())
    {
        object[] values = new object[reader.FieldCount];
        reader.GetValues(values); // This returns the columns but just from 
                                     the 1st temp table only.
        var model = new TwoTableModel()
        {
            UserId = values[0].ToString(), //Each column field
            Name = values[1].ToString(),

        };

        tableList.Add(model);
    }
     return tableList;

1 个答案:

答案 0 :(得分:3)

使用NextResult()转到存储过程返回的下一个表。

reader.NextResult();

有关如何为您的edmx或代码配置它的更多信息和一个非常好的示例,请访问:https://msdn.microsoft.com/en-us/library/jj691402(v=vs.113).aspx

相关问题