create or replace procedure Gen_GetValuelist
(p_valuename in genvaluelists.valuename%type
,p_languagecode in genvalistlangs.languagecode%type
,p_outvaluelist out sys_refcursor) is
v_reccount number(4);
begin
...
open p_outvaluelist for select v.nameitem,v.valueitem
from genvaluelists v
where v.valuename = p_valuename;
end;
Web.config:
name="hrmvc.gen_getvaluelist.RefCursor.p_outvaluelist"
value="implicitRefCursor bindinfo='mode=Output'"
/>
name="hrmvc.gen_getvaluelist.RefCursorMetaData.p_outvaluelist.Column.0"
value="implicitRefCursor
metadata='ColumnName=NAMEITEM;ProviderType=Varchar2;NativeDataType=Varchar2'"
/>
name="hrmvc.gen_getvaluelist.RefCursorMetaData.p_outvaluelist.Column.1"
value="implicitRefCursor
metadata='ColumnName=VALUEITEM;ProviderType=Varchar2;NativeDataType=Varchar2'"
/>
在edxm中将存储过程导入为函数:
在edmx模型上选用
ADO.NET C# DbContext Generator
生成代码:
public
partial class GEN_GETVALUELIST_Result
{
public string NAMEITEM { get; set; }
public string VALUEITEM { get; set; }
}
在Main中调用:
static void Main(string[] args){
using (GenDbContext ctx = new GenDbContext())
{
var valists =
ctx.GEN_GETVALUELIST("Gender","zh-CN");
foreach (var valist in valists)
{
Console.WriteLine( valist.NAMEITEM+valist.VALUEITEM);
}
}
非常简洁方便。