EF中执行存储过程

SqlParameter[] parms = new SqlParameter[5];
                SqlParameter parms0 = new SqlParameter("IsAll", int.Parse(parames.P1)); //生成一个参数并给参数赋值。
                SqlParameter parms1 = new SqlParameter("ForumId", int.Parse(parames.P2));
                SqlParameter parms2 = new SqlParameter("CustomerId", int.Parse(parames.P3));
                SqlParameter parms3 = new SqlParameter("PostId", int.Parse(parames.P4));
                SqlParameter parms4 = new SqlParameter("TopicId", int.Parse(parames.P5));
                parms[0] = parms0;
                parms[1] = parms1;
                parms[2] = parms2;
                parms[3] = parms3;
                parms[4] = parms4;
                var postdatalist = _addressRepository.SqlQuery<Post>("exec GetPostList @IsAll,@ForumId,@CustomerId,@PostId,@TopicId ", parms);
                int pageindex = string.IsNullOrEmpty(parames.P9) ? 0 : int.Parse(parames.P9);
                int pagesize = string.IsNullOrEmpty(parames.P10) ? 0 : int.Parse(parames.P10);
                PagedList<Post> pageddata = new PagedList<Post>(postdatalist.OrderBy(p => p.CreatedOnUtc).ToList(), int.Parse(parames.P9), int.Parse(parames.P10));
                result.success = "true";
                result.retcode = RetCode.successKey;
                result.data = JsonHelper.ListToJson<Post>(pageddata);
                return result;

这里,执行存储过程返回的是一个list()集合数据,那天魔瓦网络公司的面试时问我如果执行存储过程返回的数据你如何转成实体对象,是另外新建model,cs类么?我一时没回答出来,他说如果是那样的话是不好的哦。这里的这个pagelist类是一个nopcommerce写的一个类型,他继承与list<T>类。主要作用是对list数据进行分类。以后需要用到可以效仿。另外要多学习存储过程的编写。

EF中执行存储过程,布布扣,bubuko.com

时间: 2024-12-25 15:54:47

EF中执行存储过程的相关文章

EF中执行原生sql与使用Local获取本地数据

使用DbSet的Local属性可以访问当前context中被追踪且没有被标记为删除的实体(内存中的数据) 1 using (var context = new BloggingContext()) 2 { 3 // Load all blogs from the database into the context 4 context.Blogs.Load(); 5 6 // Add a new blog to the context 7 context.Blogs.Add(new Blog {

sqlserver2008链接服务器中执行存储过程配置过程

参考:http://www.cnblogs.com/ycsfwhh/archive/2010/12/15/1906507.html 1.双方启动MSDTC服务MSDTC(分布式交易协调器),协调跨多个数据库.消息队列.文件系统等资源管理器的事务.该服务的进程名为Msdtc.exe,该进程调用系统Microsoft Personal Web Server和Microsoft SQL Server.该服务用于管理多个服务器 .位置:控制面板--管理工具--服务--Distributed Transa

在SQL Server数据库中执行存储过程很快,在c#中调用很慢的问题

记录工作中遇到的问题,分享出来: 原博客地址:https://blog.csdn.net/weixin_40782680/article/details/85038281 今天遇到一个比较郁闷的问题,如下图: 点击库存或者点击销售,查询数据很慢,有的将近几十秒,查询数据用的是存储过程,在数据库中执行存储过程,查询数据是很快的,速度非常理想,1秒不到,但是c#程序中调用就要很久. 百度了很多,后来这上面的那篇文章中找到了原因所在: 原因分析:由于存储过程是预编译的, 在第一次执行的时候, 会生成执

EF中执行sql语句

EF原理 EF 会自动把 Where().OrderBy().Select()等这些编译成"表达式树(Expression Tree)",然后会把表达式树翻译成 SQL 语句去执行.(编译原理,AST)因此不是"把数据都取到内存中,然后使用集合的方法进行数据过滤",因此性能不会低.但是如果这个操作不能被翻译成 SQL 语句,则或者报错,或者被放到内存中操作,性能就会非常低 跟踪EF的查询Sql语句: DbContext 有一个 Database 属性,其中的 Log

Java中执行存储过程和函数(web基础学习笔记十四)

一.概述 如果想要执行存储过程,我们应该使用 CallableStatement 接口. CallableStatement 接口继承自PreparedStatement 接口.所以CallableStatement 接口包含有Statement 接口和PreparedStatement 接口定义的全部方法,但是并不是所有的方法我们都要使用,主要使用的方法有这样几个: CallableStatement 常用方法: 返回类型 方法签名 说明 boolean execute() 执行 SQL 语句

在EF中执行SQL语句

你可能要问,我用EF不就为了避免写SQL吗?如果要写SQL我不如直接用ADO.NET得了.话虽然这么说没错,可有些时候使用EF操作数据还是有一些不方便,例如让你根据条件删除一组记录,如果按照正常的流程来走,你就得先把这些数据查出来,然后再一条一条地删除它们,这样不仅麻烦而且性能也比较低.这种情况下SQL就显示出它的威力了. 而使用EF执行SQL又比ADO.NET方便,特别是在执行查询语句的时候,EF会把查询到的数据自动保存到数据实体中,省去了使用DataReader的麻烦.同时查询出来的数据还会

Oracle中执行存储过程call和exec区别

在sqlplus中这两种方法都可以使用:exec pro_name(参数1..);call pro_name(参数1..); 区别: 1. 但是exec是sqlplus命令,只能在sqlplus中使用:call为SQL命令,没有限制.2. 存储过程没有参数时,exec可以直接跟过程名(可以省略()),但call则必须带上(). Sql代码SQL> --创建过程插入数据SQL> create or replace procedure pro1 is2 begin --执行部分3 insert i

EF(ServerFirst)执行存储过程实例1(带输出参数)

1.不含动态sql.带输出参数存储过程调用实例 a.存储过程代码: b.EF自动生成代码(包括对应ObjectResult的实体模型): c.调用存储过程代码实例: 总结: ObjectParameter参数对应输出类型时,不必指定类似Output等 ObjectParameter的命名空间:using System.Data.Objects; ObjectParameter参数的Name是对应存储过程参数字符串去掉@符号,例如存储过程参数‘@Count int output‘,对应Name为”

EF 学习系列三 数据操作数据加载及EF中执行Sql

我们通过EF来对数据库进行操作并持久化到数据库,那么EF必然通过EF上下文来维护实体的状态,明确知道每一个状态所对应的操作.也就是说EF通过上下文负责跟踪实体的状态.EF实体状态存在命名空间System.Data.Entity下的EntityState枚举中 原文地址:https://www.cnblogs.com/jhgfdm/p/12274286.html