EF框架调用存储过程
来源:互联网 发布:python 抓到的源码不对 编辑:程序博客网 时间:2024/06/11 09:53
新到的公司项目用EF+MVC,开始接触,遇到很多挫折,由于数据库设计原因,很多地方都要用视图、存储过程来实现一些需求。
调用存储过程遇到了好多问题,这边记录一下几种调用方式,及遇到的问题的解决方式。
存储过程:
ALTER PROCEDURE sp_Name(
@param1 INT,
@param2 INT,
@param3 BIT OUTPUT,
@param4 NVARCHAR(50) OUTPUT
)
AS
BEGIN
……
END
一、var entities = new DataEntities();
var param1 =0;
var param2 =1;
var param3 = new ObjectParameter("param3 ", DbType.Boolean);
var param4 = new ObjectParameter("param4 ", typeof(string));
entities.sp_Name(param1, param2 , param3 , param4 );
这边遇到的问题是开始param4 定义也是用param3的定义方式,但是一直报错,用SQL Server Profiler监测到param4的类型被定义成了int,完全摸不着头脑了,也百度不要类似的问题,然后开始找另外的存储过程调用方式。
二、
SqlParameter[] param ={
new SqlParameter("@param1 ",SqlDbType.Int),
new SqlParameter("@param2 ",SqlDbType.Int)
new SqlParameter("@param3 ",SqlDbType.Bit),
new SqlParameter("@param3 ",SqlDbType.Nvarchar,50)
};
param[0].Value = 0;
param[1].Value = 0;
param[2].Direction = ParameterDirection.Output;
param[3].Direction = ParameterDirection.Output;
var results = db.Database.SqlQuery<int>(
"sp_Name@param1 ,@param2 ,@param3 out,@param4 out",
param[0], param[1],param[2],param[3]);
或者
var results = db.Database.ExecuteSqlCommand(
"sp_Name@param1 ,@param2 ,@param3 out,@param4 out",
param[0], param[1],param[2],param[3]);
这样同样不行,因为后来发现上面的方式可以了就没有再深究具体什么原因不行。
以上是主要执行插入或者删除之类操作的存储过程,那么查询数据怎么获取到查到到的数据呢?
存储过程:
ALTER PROCEDURE sp_Name
@param1 VARCHAR(50),
@param2 INT OUTPUT
AS
BEGIN
SELECT * FROM tb_Name
END
代码:
var db = new DataEntities();
SqlParameter[] param ={
new SqlParameter("@param1",SqlDbType.VarChar,50),
new SqlParameter("@param2",SqlDbType.Int)};
param[0].Value = id;
param[1].Direction = ParameterDirection.Output;
var results = db.Database.SqlQuery<GenealogyData>(
"sp_MemberManager @id,@reval out",
param[0], param[1]);
param2= Convert.ToInt32(param[1].Value);
IList<Data> infoList = new List<Data>();
if (reval == 0)
{
infoList = results.ToList();
}
刚开始接触,仅仅记录一下,有什么不对的请多指教!
- EF框架调用存储过程
- EF框架下调用 调用Oracle 存储过程
- EF调用存储过程、函数
- EF调用存储过程、函数
- EF操作存储过程调用
- EF和LINQ 调用存储过程
- 使用EF来调用存储过程
- 关于EF调用存储过程碰到的问题解决过程
- MVC之EF(调用存储过程的分页)
- EF core 2.0 调用MySql数据库存储过程
- EF 存储过程(下)
- EF 存储过程(上)
- 使用 Spring 框架调用 DB2 存储过程
- Hibernate框架下调用Mysql存储过程
- ssm框架调用mysql存储过程
- EF调用存储过程无法返回复杂类型,提示所选存储过程或函数未返回任何列
- EF中映射Oracle存储过程及调用出现的一些问题
- 在C#中使用EntityFramework(EF)生成实体进行存储过程的调用
- 关于c++中的virtual继承的总结
- android中wifi原理及流程分析(很经典)
- In App Purchase总结
- Kinect 3D建模
- c笔记——可变长参数函数用法
- EF框架调用存储过程
- C++基础知识(三) 面向对象
- 关于showmodaldialog 打开新窗口后提交表单操作时,避免弹出新窗口和避免从后台获取“新数据”后不能刷新当前模态页面的解决方案
- Android中的Audio播放:控制Audio输出通道切换
- Android Service完全解析,关于服务你所需知道的一切(上)
- Source and sink output current等术语解释
- ORACLE 10G RAC 节点自动重启故障处理
- 使用位域来定义位变量,执行位操作,多用于flag变量,YES or NO 的标记
- 黑马程序员---Java接口