使用实体数据模型从存储过程中选择多行

时间:2012-12-24 05:15:06

标签: c# asp.net sql entity-framework ado.net

我希望存储过程返回多行,我正在使用实体数据模型。另外,我想检索作为输出给出的所有行的列值。

我使用SqlDataReaderSqlCommandSqlConnection完成了这件事。

SqlCommand cmd = new SqlCommand("select leave_details,LID,from_date,to_date from LeaveTable where E_ID=1 and from_date<@toDate and to_date>@fromDate", con);
cmd.Parameters.Add("@toDate", System.Data.SqlDbType.Date);
cmd.Parameters["@toDate"].Value = to_date;
cmd.Parameters.Add("@fromDate", System.Data.SqlDbType.Date);
cmd.Parameters["@fromDate"].Value = from_date;
con.Open();

obj = cmd.ExecuteReader();

我可以使用obj.read()遍历行。

我可以使用

读取特定列的值
leave_id = (int)obj.GetValue(1);

如何通过存储过程完成相同的操作并使用实体数据模型创建函数导入?

2 个答案:

答案 0 :(得分:1)

有几个步骤可以做到这一点我相信这是迄今为止最好的教程,可以在网上找到

http://msdn.microsoft.com/en-us/data/gg699321.aspx

你基本上必须创建一个新的复杂类型,因为你从几个表中选择我相信本教程有一个如何做到这一点的例子。基本上你会在列表中返回一组值,然后你可以从alist中读取每个值/对象

答案 1 :(得分:0)

您可以在实体框架对象模型中添加存储过程作为函数导入,而添加它会要求您返回类型...因此它可以生成复杂的自定义实体。与商店程序进行通信时,它将从实体微服务器中获取数据。将它添加到自定义实体中,这样您就可以从表格中获取多行再创建一个实体对象,然后你将得到我们所设置的函数名称.ToLIst()到它的calaling end,这样它就会返回你的结果集列表。

实体团队合作:abcentity

创建实体对象:abventity abc = new abcentity();

调用SP函数:var Result = abc.SPCall(parmae​​ters).tolist();

结果您将获得商店程序的结果列表