Несколько вещей, чтобы попробовать.
- Использовать Таблицы переменных вместо -> может быть, мастер импорта предпочитает это?
- Назовите ваши возвращаемые поля.
Попробуйте использовать следующий сохраненный процесс (не проверено ... просто мысли вслух ...)
CREATE PROCEDURE dbo.Foo
AS
SET NOCOUNT ON
DECLARE @ResultTable TABLE (SomeId INTEGER)
INSERT INTO @ResultTable
SELECT DISTINCT Id AS Identity -- Or u can rename this field to anything...
FROM SomeExistingTableWhichHasAnIdentityField
GO
Попробуйте и посмотрите, обновляется ли мастер сейчас.
-
Попытка № 2:)
Хорошо ... когда разработчик EF / волшебник / что-то не в состоянии выяснить ТОЧНО, что, как предполагается, мой сохраненный процесс возвращает, я обычно делаюследующее: -
- Убедитесь, что хранимая процедура вообще не существует в конструкторе / контексте EF и т. д. (у вас есть чистая отправная точка)
- Откройте сохраненную хранимую процедурупроцедуры и
/* /*
закомментируйте ВСЕ после определения процедуры.
например ..
ALTER PROCEDURE dbo.Foo
(
Bar1 INT,
Bar2 TINYINT,
... // whatever u have as your optional input arguments //
)
AS
SET NOCOUNT ON
/*
.... every thing in here is commented out
*/
GO
Сейчас ... 3. Добавьте принудительную подделкувернуть в сохраненный процесс, который (более или менее) всего лишь определяет выходную структуру / поля.
например ..
ALTER PROCEDURE dbo.Foo
(
Bar1 INT,
Bar2 TINYINT,
... // whatever u have as your optional input arguments //
)
AS
SET NOCOUNT ON
SELECT 1 AS Id, 1 AS UserId, 1 AS SomeOtherId,
CAST('AAA' AS NVARCHAR(350)) AS Name,
-- etc etc etc..
/*
.... every thing in here is commented out
*/
GO
а затем ...
Добавьте этот сохраненный процесс в ваш дизайнер EF / мастер / и т. Д. ... Теперь правильные поля должны быть определены дизайнером.КЛАССНО.Да ... все значения жестко закодированы ... но это нормально (пока). Как только вы будете довольны, что EF теперь правильно обновлен, вернитесь в свой сохраненный процесс и удалите все жестко закодированные SELECT (что мы и сделалина вышеуказанном этапе).Теперь мы удалим комментарии, которые мы закомментировали весь реальный код.Таким образом, у вас должен быть исходный сохраненный процесс, обратно.
... и теперь EF обновлен и не знает, что мы изменили расположение вашего хранимого процесса.
win:)
это работает для тебя?