首页 新闻 会员 周边 捐助

EF (code first)通过什么方式 执行oracle的存储过程

0
悬赏园豆:50 [待解决问题]
这是我的执行的存储过程方法,可是返回方法报错。由于自己也不太懂存储过程,把存储过程也贴出来

create or replace procedure get_username(v_id in number,v_username out varchar2)
as
begin
select name into v_username from "TESTs" where id = v_id; --变量赋值
exception
when no_data_found then
raise_application_error(-20001,'ID不存在!');
end get_username;

 

请大神解答下

 
编译真难的主页 编译真难 | 初学一级 | 园豆:33
提问于:2016-05-23 18:01
< >
分享
所有回答(6)
0

不知道这个能不能帮到你

CodeHsu | 园豆:5668 (大侠五级) | 2016-05-23 19:42

你用的是sqlserver的存储过程与返回值,估计也差不多。当时我用调用的时候 还是报错了。找原因ing

 

支持(0) 反对(0) 编译真难 | 园豆:33 (初学一级) | 2016-05-24 08:50
0

欢迎使用Moon.Orm,多数据库 多数据源支持 存储过程不在话下

[秦时明月] | 园豆:738 (小虾三级) | 2016-05-23 21:41
0

我好奇题主通过什么方式让codefirst在初始化的时候去生成存储过程?

Y2zz | 园豆:393 (菜鸟二级) | 2016-05-24 08:54

并不是初始化的时候,因为ef分model first 之类的东西,所以我写codefirst是想告诉园友门  我没有模型图点击下就可以创建存储过程的东西

支持(0) 反对(0) 编译真难 | 园豆:33 (初学一级) | 2016-05-24 09:51
0

你可以试试单独执行存储过程看有没有问题,然后把所有的执行作为sql执行试试 ,类似这样的

amaoqf | 园豆:204 (菜鸟二级) | 2016-05-24 09:54

SQL语句是没有问题的~~~而且EF也是支持存储过程的。不过因为EF 对于兼容oracle不太友好,所以我测试存储过程就报错了。

支持(0) 反对(0) 编译真难 | 园豆:33 (初学一级) | 2016-05-24 10:13
0

execute get_username......

czd890 | 园豆:14488 (专家六级) | 2016-05-25 14:29
0

 EF底层还是ADO.NET ,你可以使用这种方式去

 1 using(var dbContext = new DbContext())
 2 {
 3      var cmd = dbContext.Database.Connection.CreateCommand();
 4      cmd.CommandType = CommandType.StoredProcedure;
 5      cmd.CommandText = procedureName;
 6      cmd.Parameters.AddRange(parameters);
 7      cmd.Connection.Open();
 8      cmd.ExecuteNonQuery();
 9      cmd.Connection.Close();
10 }

parameters可以用DbParameter

 

Aka-w | 园豆:38 (初学一级) | 2016-08-27 12:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册