Я использую Visual Studio 2010 и Entity Framework (EF). Я извлекаю данные из базы данных и привязываю их к Gridview через Entity Model, используя хранимые процедуры. Когда я выполняю эту хранимую процедуру в SQL-запросе, она возвращает столбцы, которые генерируются динамически. т. е. выполнить (@PivotTableSQL). @PivotTableSQL содержит динамически сгенерированный оператор выбора. Ниже мой код хранимой процедуры.
Но, чтобы создать сложный тип, из окна браузера модели сущностей -> окно импорта Добавить функцию -> сложный -> получить информацию о столбцах, «выбранная хранимая процедура не возвращает столбцы» сообщение отображается. Пожалуйста, дайте мне решение, как добавить функцию импорта и получить информацию о столбце (создать сложный тип) или любое другое альтернативное решение в деталях. Этот остановил мое дальнейшее развитие. Заранее спасибо.
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