SQL Серверная хранимая процедура не обновляет базу данных через linq - PullRequest
0 голосов
/ 04 марта 2020

У меня есть эта хранимая процедура в моей SQL базе данных сервера:

ALTER PROCEDURE [dbo].[InsertOrUpdateUserWorkingHours]
    @Id INT,
    @DateTimeStart DATETIME,
    @DateTimeEnd DATETIME,
    @WorkTime INT,
    @LatStart DECIMAL (9,6),
    @LongStart DECIMAL (9,6),
    @LatEnd DECIMAL (9,6),
    @LongEnd DECIMAL (9,6),
    @CompanyId INT,
    @UserId INT,
    @PageId INT
AS 
BEGIN
    IF (@Id = 0)
    BEGIN
        INSERT INTO dbo.UserWorkingHours ([DateTimeStart], [LatStart], [LongStart],
                                          [DateTimeEnd], [LatEnd], [LongEnd],
                                          [WorkTime], [UserId], [CompanyId],
                                          [IsDeleted], [CreatedOn], [CreatedBy])
        VALUES (@DateTimeStart, @LatStart, @LatEnd, 
                @DateTimeEnd, @LatEnd, @LongEnd,
                @WorkTime, @UserId, @CompanyId,
                0, GETDATE(), @UserId)

        SELECT @Id = SCOPE_IDENTITY();
    END
    ELSE
    BEGIN
        UPDATE dbo.UserWorkingHours 
        SET [DateTimeStart] = @DateTimeStart,
            [DateTimeEnd] = @DateTimeEnd,
            [LatStart] = @LatStart,
            [LongStart] = @LongStart,
            [LatEnd] = @LatEnd,
            [LongEnd] = @LongEnd,
            [WorkTime] = @WorkTime,
            [UpdatedOn] = GETDATE(),
            [CreatedBy] = @UserId
        WHERE [id] = @Id
    END

    SELECT ISNULL(@Id, 0) AS InsertedId;
END

Я вызываю эту процедуру из моего MVC приложения с помощью этого метода:

 using (this.objDataContext = new UserWorkingHoursDataContext(serverConnection))
{
    var result = this.objDataContext.InsertOrUpdateUserWorkingHours(objSave.Id,
        objSave.DateTimeStart,
        objSave.DateTimeEnd,
        (int)objSave.WorkTime.TotalMinutes,
        (decimal)objSave.LatStart,
        (decimal)objSave.LongStart,
        (decimal)objSave.LatEnd,
        (decimal)objSave.LongEnd,
        objSave.CompanyId,
        objSave.UserId,
        PageMaster.UserWorkingHours).FirstOrDefault();

    if (result != null)
    {
        return result.InsertedId;
    }
}

Every Когда я использую эту процедуру, я получаю вставленный идентификатор из базы данных, но строки не вставляются в таблицу. Нет исключений, и все выглядит хорошо. Может быть, я упускаю что-то очевидное?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...