我需要有一种带有参数的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这样的东西,但我要说的是返回的类型,但它是一个自定义的类型。所以我不知道怎么说。