我正在使用Visual Studio 2010和實體框架(EF)。我正在使用存儲過程通過實體模型從數據庫中獲取數據並將其綁定到Gridview中。當我在SQL查詢中執行這個存儲過程時,它的返回列是動態生成的。即,執行(@PivotTableSQL)。 @PivotTableSQL包含動態生成的select語句。以下是我的存儲過程的代碼。實體框架4.0 - 函數導入 - 存儲過程結果集
但是,要創建複雜類型,請從實體模型瀏覽器窗口 - >添加函數導入窗口 - >複雜 - >獲取列信息,「所選存儲過程不返回任何列。消息被顯示。請給我一個解決方案,如何添加功能導入和獲取列信息(創建複雜類型)或任何其他備用解決方案的詳細信息。這阻止了我的進一步發展。提前致謝。
alter PROCEDURE spGetQuestGrid
(
@QID as int
)
AS
BEGIN
SET NOCOUNT OFF
SET FMTONLY OFF
Declare @optId varchar(10)
DECLARE @PivotColumnHeaders VARCHAR(MAX)
DECLARE @PivotTableSQL NVARCHAR(MAX)
set @optId = (select DISTINCT Optid from QuestOptions where QID = @QID)
SELECT @PivotColumnHeaders = COALESCE(@PivotColumnHeaders + ', [' + cast(Caption as varchar) + ']' ,
'[' + cast(Caption as varchar)+ ']')
FROM OptionsDetail where OptId = @optId
SET @PivotTableSQL = 'select * from (select Caption,Optid from OptionsDetail) as datatable
PIVOT
(min(Optid) FOR Caption IN ('+ @PivotColumnHeaders + '))as Colltable'
Execute (@PivotTableSQL)
END