加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 使用实体框架执行存储过程

发布时间:2020-12-15 18:17:23 所属栏目:百科 来源:网络整理
导读:是否可以使用EF执行存储过程,使用内连接和左外连接从两个或多个表中选择数据库中的记录. 我的观点是避免在EF或LINQ中进行连接的方法,我有很多问题. 因此,如果我创建该过程,我可以使用来自用户输入的参数调用它,可以将结果分配给.ToList()方法,然后将结果添加
是否可以使用EF执行存储过程,使用内连接和左外连接从两个或多个表中选择数据库中的记录.

我的观点是避免在EF或LINQ中进行连接的方法,我有很多问题.

因此,如果我创建该过程,我可以使用来自用户输入的参数调用它,可以将结果分配给.ToList()方法,然后将结果添加到asp:repeater .DataSource.

我知道这可能是一个奇怪的问题,但我想这样做有很多原因
首先,使用EF因为我感觉更舒服.
第二,摆脱在EF中使用连接.
第三,我在某处读到,当用于经常调用查询时,使用存储过程将提高查询性能.

如果有人可以帮助我用一个例子回答这些问题,我将不胜感激.

解决方法

您可以从Entity Framework数据上下文中调用SqlQuery.
context.Database.SqlQuery<YourType>("exec usp_StoredProcedure").ToList()

作为示例,您需要一个类来映射查询结果:

public class YourType
{
   public string Property1 { get; set; }
   public string Property2 { get; set; }
}

您还可以为查询指定参数,如下所示:

SqlParameter parameter1 = new SqlParameter("@Parameter1","Value");
context.Database.SqlQuery<YourType>("exec usp_StoredProcedure @Parameter1",parameter1).ToList()

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读