У меня есть этот тип таблицы пользователя в SQL Server:
CREATE TYPE [dbo].[ListNew] AS TABLE
(
[Id] [int] NOT NULL,
PRIMARY KEY CLUSTERED ([Id] ASC) WITH (IGNORE_DUP_KEY = OFF)
)
GO
И использовать этот тип в параметре хранимой процедуры:
....
(@lstNew ListNew READONLY,
@UserName nvarchar(128))
AS
....
И использовать эту хранимую процедуру в ASP.NET MVCс этим кодом:
List<int> lstNew = MyList.Select(o => o.Key).ToList();
List<XXXView> lstView = db.Database.SqlQuery<XXXView>("MyStoredProcedure @lstNew,@UserName",
new SqlParameter("@lstNew", lstNew),
new SqlParameter("@UserName", userName)).ToList();
, но он не работает, и получите эту ошибку:
Нет сопоставления для типа объекта System.Collections.Generic.List`1 [[System.Int32, mscorlib, Версия = 4.0.0.0, Культура = нейтральная, PublicKeyToken = b77a5c561934e089]] для известного типа управляемого управляемого провайдера.
Я пытаюсь без ListNew и использую только имя пользователя, он работает
Редактировать:
Я использую этот код:
myParameter.SqlDbType = SqlDbType.Udt;
myParameter.UdtTypeName = "ListNew";
Но я получаю то же предупреждение