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;
请大神解答下
不知道这个能不能帮到你
你用的是sqlserver的存储过程与返回值,估计也差不多。当时我用调用的时候 还是报错了。找原因ing
我好奇题主通过什么方式让codefirst在初始化的时候去生成存储过程?
并不是初始化的时候,因为ef分model first 之类的东西,所以我写codefirst是想告诉园友门 我没有模型图点击下就可以创建存储过程的东西
你可以试试单独执行存储过程看有没有问题,然后把所有的执行作为sql执行试试 ,类似这样的
SQL语句是没有问题的~~~而且EF也是支持存储过程的。不过因为EF 对于兼容oracle不太友好,所以我测试存储过程就报错了。
execute get_username......
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