Это проблема:
У меня есть таблица, в которой запросы на обновление не выполняются.
Когда пользователь нажимает кнопку удаления в приложении, RowStatus должен быть установлен как 0 вместо 1, тип данных - битовый.
Используя профилировщик SQL, мы видим, что запрос на обновление достигает SQL-сервера, но он там не выполняется - он не возвращает никаких исключений приложению.
Мы используем PK таблицы для определения строки, которая будет обновлена.
Мы можем успешно вставлять значения в таблицу из приложения через веб-сервер, только запросы на обновление не выполняются.
У нас есть несколько таблиц в приложении, но проблема только в этой таблице.
Мы используем Entity Framework для обновления таблицы.
Может ли кто-нибудь помочь, пожалуйста?
Это структура таблицы:
[dbo].[TableName](
[PrimaryKey] [int] IDENTITY(1,1) NOT NULL,
[ForeignKey1] [int] NOT NULL,
[ForeignKey2] [int] NOT NULL,
[RowStatus] [bit] NULL,
[CreatedBy] [int] NULL,
[CreationDate] [datetime2](7) NULL,
[UpdatedBy] [int] NOT NULL,
[UpdatedDate] [datetime2](7) NOT NULL
)
Это запрос, который я видел в профилировщике:
exec sp_executesql N'UPDATE [dbo].[TableName]
SET [RowStatus] = @0, [UpdatedBy] = @1, [UpdatedDate] = @2
WHERE [PrimaryKey] = @3)
',N'@0 bit,@1 int,@2 datetime2(7),@3 int',@0=0,@1=999,@2='2018-05-02
05:20:16.2795067',@3=30
Обновление: оно начало работать после того, как я изменил dbcontext.savechanges () вместо dbcontext.savechangesasync (), чтобы сохранить изменения в сущности.
Кто-нибудь сталкивался с этой проблемой раньше?