Entity framework 在实体框架中使用联合表和临时表进行查询的存储过程

Entity framework 在实体框架中使用联合表和临时表进行查询的存储过程,entity-framework,stored-procedures,Entity Framework,Stored Procedures,我有一个使用临时表和union查询数据库的存储过程: ALTER PROCEDURE q_GetAllAttributesAndValuesByDocument(@IdDocument BIGINT) AS BEGIN SET NOCOUNT ON; SELECT AT.IDATRIBUTO, AT.NOMBREATRIBUTO, AD.VALORATRIBUTO INTO #TMP_ATTR FROM

我有一个使用临时表和union查询数据库的存储过程:

ALTER PROCEDURE q_GetAllAttributesAndValuesByDocument(@IdDocument BIGINT)
AS
BEGIN
    SET NOCOUNT ON;

    SELECT  
       AT.IDATRIBUTO,
       AT.NOMBREATRIBUTO,
       AD.VALORATRIBUTO
    INTO
       #TMP_ATTR
    FROM    
       ATRIBUTOS AT
    INNER JOIN 
       ATRIBUTOSXDOCUMENTO AD ON AT.IDATRIBUTO = AD.IDATRIBUTO
    WHERE 
       AD.IDDOCUMENTO2 = @IdDocument

    SELECT  
       TA.IDATRIBUTO AS Id,
       TA.NOMBREATRIBUTO AS Name,
       TA.VALORATRIBUTO AS Value
    FROM
       #TMP_ATTR TA

    UNION 

    SELECT  
       AT.IDATRIBUTO AS Id,
       AT.NOMBREATRIBUTO AS Name,
       '' AS Value
    FROM    
       ATRIBUTOS AT
    WHERE 
       IDATRIBUTO NOT IN (SELECT TA.IDATRIBUTO
                          FROM #TMP_ATTR TA)
END 
当我将此存储过程添加到实体框架模型时,不会创建复杂类型,EF只会从存储过程返回一个整数

我能做什么


谢谢

尝试使用CTE而不是临时表

ALTER PROCEDURE q_GetAllAttributesAndValuesByDocument(@IdDocument BIGINT)
AS
BEGIN
    SET NOCOUNT ON;

    WITH TMP_ATTR (Id, Name, Value)
    AS
    (
        SELECT  
           AT.IDATRIBUTO,
           AT.NOMBREATRIBUTO,
           AD.VALORATRIBUTO
        FROM    
           ATRIBUTOS AT
        INNER JOIN 
           ATRIBUTOSXDOCUMENTO AD ON AT.IDATRIBUTO = AD.IDATRIBUTO
        WHERE 
           AD.IDDOCUMENTO2 = @IdDocument
    )

    SELECT  
       TA.IDATRIBUTO AS Id,
       TA.NOMBREATRIBUTO AS Name,
       TA.VALORATRIBUTO AS Value
    FROM
       TMP_ATTR TA

    UNION 

    SELECT  
       AT.IDATRIBUTO AS Id,
       AT.NOMBREATRIBUTO AS Name,
       '' AS Value
    FROM    
       ATRIBUTOS AT
    WHERE 
       IDATRIBUTO NOT IN (SELECT TA.IDATRIBUTO
                          FROM TMP_ATTR TA)

然后从数据库中更新模型。

您希望的复杂类型是什么?