У меня есть эта хранимая процедура в моей 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 Когда я использую эту процедуру, я получаю вставленный идентификатор из базы данных, но строки не вставляются в таблицу. Нет исключений, и все выглядит хорошо. Может быть, я упускаю что-то очевидное?