我已经创建了我的存储过程,我使用实体模型创建了复杂类型。现在假设我已成功建立与数据库的连接 - 现在我已准备好运行存储过程并将行存储在List<ComplexType>
中。我该如何以最好,最有效的方式做到这一点?我知道我可以遍历SQLDataReader的列和行,但有点像我会忽略实体框架的重点。
非常感谢。
答案 0 :(得分:2)
您可以将存储过程添加为函数导入,然后直接在程序集中调用它:
Using (var context = new NorthwindEntities())
{
Var query = context.GetEmployeeNames(); // we import the stored procedure as a function GetEmployeeNames().
//…
}
如果在存储过程中使用OUTPUT参数,则需要添加ObjectParameters以获取返回值。例如,
Using(var context = new NorthwindEntities())
{
ObjectParameter firstname = new ObjectParameter(“firstname”, typeof(String));
ObjectParameter lastname = new ObjectParameter(“lastname”, typeof(String));
Var query = context.GetEmployeeByID(123, firstname, lastname);
// Console.WriteLine(“Employee {0}’s name is: {1}.{2}.”, 123, firstname, lastname);
}
这是一个实时样本:
ReferralVisitors 是一个存储过程。