Есть метод, который добавляет запись в БД
public void AddAsync(T entity)
{
dbContext.Set<T>().Add(entity);
dbContext.SaveChanges();
}
В параметры передается экземпляр класса Post.
Для таблицы Posts создан триггер, который обращается к другой БД, где хранятся данные о пользователях и соответственно осуществляет поиск.
INSTEAD OF INSERT
AS
BEGIN
DECLARE @UserId NVARCHAR(MAX) = (SELECT UserId FROM inserted)
DECLARE @Content NVARCHAR(MAX) = (SELECT Content FROM inserted)
DECLARE @PublishTime DATE = (SELECT PublishTime FROM inserted)
SELECT @UserId = (SELECT Id --Поиск пользователя в таблице AspNetUsers
FROM SlackIdentityDB.dbo.AspNetUsers
WHERE Id = @UserId);
IF @UserId IS NOT NULL --Если пользователь найден
INSERT INTO Posts(UserId,Content,PublishTime) VALUES(@UserId,@Content,@PublishTime);
ELSE ROLLBACK;
END
Однако при запуске приложения генерируется исключение
Как исправить эту ошибку?
Как по традиции, отвечу на свой вопрос сам.Эта проблема решается добавлением в конец триггера select-запроса с параметрами(@@ROWCOUNT > 0 and Id = scope_identity())
SELECT Id
FROM *Таблица, для которой создается триггер*
WHERE @@ROWCOUNT > 0 and Id = scope_identity();
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости