实体框架在Query中返回自定义表

时间:2016-06-27 14:06:34

标签: c# oracle entity-framework dataservice

我需要有一种带有参数的View,由Entity Framework调用。经过一番搜索,我在Oracle方面提出了这个解决方案:

CREATE OR REPLACE
type PLANNING_TV is object (cod_planificacion number, des_planificacion varchar2(70), cod_cliente number, cod_compania number); 

CREATE OR REPLACE
type PLANNING_TV_TBL is table of PLANNING_TV; 

CREATE FUNCTION q_apptdept (cliente number, utilizador number)
      RETURN PLANNING_TV_TBL
   IS
      CURSOR cur (c_cliente number, c_utilizador number)
      IS
         SELECT PTV.COD_PLANIFICACION, 
           PTV.DES_PLANIFICACION, 
           PTV.COD_CLIENTE, 
           PTV.COD_COMPANIA 
          FROM RO.PLANIFICACION_TV PTV 
         WHERE PTV.COD_PAIS = 620 
           AND EXTRACT(YEAR FROM F_INICIO) >= 2016 - 1 
           AND PTV.COD_COMPANIA IN (SELECT NVL(XR.COD_COMPANHIA, XR.COD_COMPANHIA) 
                                      FROM XR_VW_CLI_GRUPO_COMP_UTIL_MMS XR 
                                     WHERE XR.COD_UTILIZADOR = c_utilizador) 
           AND COD_CLIENTE = c_cliente 
         ORDER BY COD_PLANIFICACION DESC;

      ty             PLANNING_TV;
      tbl            PLANNING_TV_TBL := PLANNING_TV_TBL ();
   BEGIN
      FOR rec IN cur (cliente, utilizador) LOOP
         ty := PLANNING_TV (rec.COD_PLANIFICACION, rec.DES_PLANIFICACION, rec.COD_CLIENTE, rec.COD_COMPANIA);
         tbl.EXTEND;
         tbl (tbl.LAST) := ty;
      END LOOP;

      RETURN tbl;
   END;

基本上我创建数据类型,然后创建此数据类型的表,并返回包含我的数据的表。

获取此信息我可以做(oracle方面):

SELECT * FROM TABLE(q_apptdept(<parm1>, <parm2>)); 

但是,如何在我的实体框架数据服务上调用它?

我认为像Createquery这样的东西,但我要说的是返回的类型,但它是一个自定义的类型。所以我不知道怎么说。

0 个答案:

没有答案