Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Новый топик    Ответить
 Чудеса/ограничения при импорте хранимых процедур в модель EF6  [new]
Glass
Member

Откуда: Moscow
Сообщений: 252
Всем добрый день!
Может, подскажете, где можно почитать про ограничения на импорт ХП в модель EF. Например, вот ХП ProcTest1 - не импортируется, а ProcTest2 (где два поля в селекте) - на ура.
Если в хранимке есть хотя бы одна временная таблица (ProcTest3), то тоже не импортируется.
А вот такая (ProcTest4) - опять на ура.

EntityFramework.6.1.3
Microsoft SQL Server 2008 (SP3) - 10.0.5500.0 (X64)
Web Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (VM)

CREATE PROCEDURE [dbo].[ProcTest1] @Mode INT = 0, @UserId NVARCHAR(128), @SearchString NVARCHAR(4000) = NULL
AS

SET NOCOUNT ON

SELECT MySetId
	FROM dbo.MySet 


CREATE PROCEDURE [dbo].[ProcTest2] @Mode INT = 0, @UserId NVARCHAR(128), @SearchString NVARCHAR(4000) = NULL
AS

SET NOCOUNT ON

SELECT MySetId, SetName
	FROM dbo.MySet 



CREATE PROCEDURE [dbo].[ProcTest3] @Mode INT = 0, @UserId NVARCHAR(128), @SearchString NVARCHAR(4000) = NULL
AS

SET NOCOUNT ON

CREATE TABLE #Sets (Id NVARCHAR(128))
INSERT INTO #Sets VALUES ('1')
INSERT INTO #Sets VALUES ('2')
INSERT INTO #Sets VALUES ('3')
INSERT INTO #Sets VALUES ('4')

SELECT t1.MySetId, t1.Name AS SetName, t1.Description, t1.ModelYear, t2.Name AS CategoryName, t2.ImageUrl AS CategoryImageUrl,
	FROM dbo.MySet t1 (NOLOCK)
		INNER JOIN dbo.MySetCategory t2 (NOLOCK)
		ON t1.MySetCategoryId = t2.MySetCategoryId
	WHERE t1.MySetId IN (SELECT Id FROM #Sets)
	ORDER BY t2.Name, t1.ModelYear DESC, t1.Name



CREATE PROCEDURE [dbo].[ProcTest4] @Mode INT = 0, @UserId NVARCHAR(128), @SearchString NVARCHAR(4000) = NULL
AS

SET NOCOUNT ON

SELECT t1.MySetId, t1.Name AS SetName, t1.Description, t1.ModelYear, t2.Name AS CategoryName, t2.ImageUrl AS CategoryImageUrl,
	FROM dbo.MySet t1 (NOLOCK)
		INNER JOIN dbo.MySetCategory t2 (NOLOCK)
		ON t1.MySetCategoryId = t2.MySetCategoryId
	ORDER BY t2.Name, t1.ModelYear DESC, t1.Name
14 июл 15, 09:10    [17888547]     Ответить | Цитировать Сообщить модератору
 Re: Чудеса/ограничения при импорте хранимых процедур в модель EF6  [new]
buser
Member

Откуда: Санкт-Петербург
Сообщений: 4537
Glass
Если в хранимке есть хотя бы одна временная таблица (ProcTest3), то тоже не импортируется.

Попробуйте во первых строках таких процедур прописать
if 1!=1 set fmtonly off
14 июл 15, 11:35    [17889247]     Ответить | Цитировать Сообщить модератору
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Ответить