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

本文关键字:过程中 选择 存储过程 存储 实体 数据模型 | 更新日期: 2023-09-27 17:49:34

我想要一个存储过程返回多行,我使用实体数据模型。我还想检索作为输出的所有行列的值。

我用SqlDataReader, SqlCommandSqlConnection做了这件事。

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

我如何通过存储过程和使用实体数据模型创建函数导入来完成同样的事情??

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

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

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

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

中读取每个值/对象

您可以在实体框架对象模型中添加存储过程作为函数导入,同时添加它将询问您返回类型…因此它可以生成复杂的自定义实体。在与存储过程通信时,从实体网络中获取数据;将其添加到自定义实体中,这样您将从表&还有一点,当您创建实体对象时,您将获得我们设置的函数名称。tolist()到其调用端,因此它将返回结果集列表。

。e

实体群控:abcentity

create object of entity: abventity ABC = new abcentity();

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

在result中,您将获得存储过程
的结果列表。