#c# #sql #sql-server #entity-framework #tsql
#c# #sql #sql-сервер #entity-framework #tsql
Вопрос:
Мне нужно передать список строк в мою хранимую процедуру Sp_Calculate_TimeSheet_Global_Info
, поэтому я создал эти два типа :
CREATE TYPE [dbo].[Type_cmd] AS TABLE (
[TypeName] [varchar](50) NULL
)
GO
CREATE TYPE [dbo].[Etape_cmd] AS TABLE (
[EtapeName] [varchar](50) NULL
)
GO
сигнатура хранимой процедуры следующая :
DECLARE @return_value int
EXEC @return_value = [dbo].[Sp_Calculate_TimeSheet_Global_Info]
@DateDebut = NULL,
@DateFin = NULL,
@UserId = NULL,
@CA = NULL,
@Client = NULL,
@EtapeName = NULL,
@TypeName = NULL
SELECT 'Return Value' = @return_value
GO
Проблема в том, что когда я сначала использовал базу данных EF, и я попытался получить эту процедуру в модели
public virtual int Sp_Calculate_TimeSheet_Global_Info(Nullable<System.DateTime> dateDebut, Nullable<System.DateTime> dateFin, Nullable<int> userId, string cA, string client)
{
var dateDebutParameter = dateDebut.HasValue ?
new ObjectParameter("DateDebut", dateDebut) :
new ObjectParameter("DateDebut", typeof(System.DateTime));
var dateFinParameter = dateFin.HasValue ?
new ObjectParameter("DateFin", dateFin) :
new ObjectParameter("DateFin", typeof(System.DateTime));
var userIdParameter = userId.HasValue ?
new ObjectParameter("UserId", userId) :
new ObjectParameter("UserId", typeof(int));
var cAParameter = cA != null ?
new ObjectParameter("CA", cA) :
new ObjectParameter("CA", typeof(string));
var clientParameter = client != null ?
new ObjectParameter("Client", client) :
new ObjectParameter("Client", typeof(string));
return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction("Sp_Calculate_TimeSheet_Global_Info", dateDebutParameter, dateFinParameter, userIdParameter, cAParameter, clientParameter);
}
пользовательские таблицы не распознаются!!!
Итак, мне нужно знать, как я могу решить эту проблему?
Комментарии:
1. Я полагаю, что они (табличные параметры) не поддерживаются EF, и поэтому вам придется выполнить свою процедуру вручную.
2. @Evk как я могу выполнить это вручную
3. Использование табличных параметров в Entity Framework
4. Просто сделайте обычный запрос (используя SqlCommand)