文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>浅谈ADO.NET Entity Data Model 中如何调用有返回值的存储过程

浅谈ADO.NET Entity Data Model 中如何调用有返回值的存储过程

时间:2010-12-18  来源:封闭

 

为什么要这么做呢,原因有以下几个:

1、使用LINQ来操作比较方便吧,这是其一。

2、知道LINQ,却很少使用,这是其二。

3、如果查询的东西过多,使用SQL语句来查觉得挺不方便的,当然啦,工夫还没到家。嘿嘿,这是其三;

 

原本以为使用LINQ会很快就能把一些东西给搞定,没想到也出了很多问题,比如增、删、改等问题的出现。

当然了,问题的出现,还是必须解决的,下面就介绍一下在LINQ 中 如何调用 ADO.NET Entity Data Model 中的存储过程;

 

首先,我们先新建一个实体集。

 

接着边选择数据库模型:

这里我们默认直接下一步:

然后选择数据库:

最后一步就是选择要包含的表、试图、存储过程。

这里可根据自己项目的需要去导入,或者后期去更新数据库模型,再添加也可,如图所示:

 

这样,基本的实体类就搭建完成了。

 

接下来,我们来导入存储过程函数:

 

然后设置返回类型:

最后确定,就完成了函数的导入;

 

其实,在使用存储过程时,会有问题,如果单单使用返回实体类的存储过程,

那么可以直接在代码中点出我们所设置的函数名称,但是,如果返回的类型

如果是空或者标量类型,那么大家就会发现,这个存储过程我们是点不出来的。

 

所以,这个就是本文要解决的问题,如何调用返回标量类型的存储过程。

 

我就直接亮代码了,跟SQL语句也差不多,相信有写过SQL语句的朋友都能看懂吧。

//先导入部分命名空间:

using System.Data.EntityClient;

 

EntityConnection conn = new EntityConnection();                /

string strConn = ConfigurationManager.ConnectionStrings["Test"].ToString();  //从配置文件中获取连接字符串

conn.ConnectionString = strConn;                        //设置连接

 

EntityCommand cmd = new EntityCommand();

cmd.Connection = conn;

cmd.CommandText = "Test.proc_DelAlbum";                  //这里必须注意的是,必须是: 实体名.存储过程名

cmd.CommandType = System.Data.CommandType.StoredProcedure;      //设置执行存储过程

EntityParameter parameter = new EntityParameter("articleTypeID", DbType.Int32);//存储过程所接收的参数,视存储过程而定咯。

//如果是在数据库标识为outPut的参数,则必须声明一个output的参数

//EntityParameter output = new EntityParameter("output", DbType.Int32, 0, ParameterDirection.Output, false, 0, 0, "", DataRowVersion.Current, "");

parameter.Value = articleType.ArticleTypeID;

cmd.Parameters.Add(parameter);

conn.Open();

cmd.ExecuteNonQuery();

还必须注意的一点是,如果在存储过程返回的是一个标量,则存储过程中的结尾必须是 select @output 结尾。否则回报错;最好不要使用return;

 

如果调用返回实体的存储过程相对来说就比较容易啦。

只需要实例化实体对象,在点出存储过程,在放入相应的参数,就可以完成了。

 

写的比较潦草,只须理解大概怎么去使用它就行了。以后再遇到这个问题,也好有个解决方案,不要像我一样,找了那么久,才找到问题的解决渠道。

 

相关阅读 更多 +
排行榜 更多 +
我的武侠梦手游下载

我的武侠梦手游下载

角色扮演 下载
快乐连连看下载免费版

快乐连连看下载免费版

休闲益智 下载
泛滥死者布道手机版下载

泛滥死者布道手机版下载

角色扮演 下载