解决此问题的最简单,最简单的方法是什么。我有一个复杂的存储过程,返回两个临时表。
如何在实体框架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;
答案 0 :(得分:3)
使用NextResult()转到存储过程返回的下一个表。
reader.NextResult();
有关如何为您的edmx或代码配置它的更多信息和一个非常好的示例,请访问:https://msdn.microsoft.com/en-us/library/jj691402(v=vs.113).aspx