首先,我为我糟糕的英语道歉。
我正在使用Entity Framework在Oracle数据库上映射存储过程。 下面的代码是我编写的用于调用存储过程并使用ObjectParameter返回值的代码。
ObjectParameter p_TotalCount = new ObjectParameter("TOTALCOUNT", typeof(int));
ObjectParameter p_TotalCountPos = new ObjectParameter("TOTALCOUNT_POS", typeof(int));
ObjectResult<EVENT_FULLTEXT_RESULT> res = ctx.GET_EVENTS_FULLTEXT2(p1, p2, ..., p_TotalCount, p_TotalCountPos);
totalCount = Convert.ToInt32(p_TotalCount.Value);
totalCountPos = Convert.ToInt32(p_TotalCountPos.Value);
与我从PLSQL开发人员调用存储过程时返回的内容不同,在这种情况下,p_TotalCount.Value返回null。
遵循为此存储过程生成实体框架的映射
<FunctionImport Name="GET_EVENTS_FULLTEXT2" ReturnType="Collection(Model.EVENT_FULLTEXT_RESULT)">
<Parameter Name="p1" Mode="In" Type="String" />
...
...
<Parameter Name="TOTALCOUNT" Mode="Out" Type="Decimal" />
<Parameter Name="TOTALCOUNT_POS" Mode="Out" Type="Decimal" />
</FunctionImport>