Здравствуйте, я не могу обернуть голову, почему я получаю сообщение об ошибке, говорящее, что этот SP ожидает @id, который не был дан, когда он дан достаточно ясно.Вот как выглядит код
public Task<bool> InsertMessage(Message msg)
{
return CallDatabase(async (connection) =>
{
var affectedows = await connection.ExecuteAsync(
"messages_insert",
new
{
msg.Id,
msg.Group,
msg.GroupUserId,
msg.userId,
msg.StartTime,
msg.FinishTime
},
commandTimeout: 3600,
commandType: CommandType.StoredProcedure
);
return affectedows == 1;
});
}
А вот СП в БД
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[messages_insert]') AND type in (N'P', N'PC'))
BEGIN
PRINT 'DROP PROCEDURE [dbo].[messages_insert]';
DROP PROCEDURE [dbo].[messages_insert];
END
GO
PRINT 'CREATE PROCEDURE [dbo].[messages_insert]';
GO
CREATE PROCEDURE [dbo].[messages_insert]
@id BIGINT, -
@group INT,
@group_user_id VARCHAR(100),
@user_id VARCHAR(100),
@start_time DATETIME,
@finish_time DATETIME
AS
BEGIN
INSERT INTO messages(id, group, group_user_id, user_id, start_time, finish_time)
VALUES(@id, @group, @group_user_id, @user_id, @start_time, @finish_time);
END
GO
Я действительно не могу понять, где я иду не так, и трассировка стека действительно ничего не говорит
Exception: System.Data.SqlClient.SqlException (0x80131904): Procedure or function 'messages_insert' expects parameter '@id', which was not supplied.