From bf338f2ffa287ae6cfb799aecee466631d5fac7c Mon Sep 17 00:00:00 2001 From: Kenneth Tang Date: Wed, 19 Aug 2020 02:20:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E6=8F=90=E5=8D=87=E6=AC=8A?= =?UTF-8?q?=E9=99=90=E5=A4=B1=E6=95=97=E5=95=8F=E9=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit bug: https://github.com/NTUT-SELab/MicrosoftGraphBot/issues/14 --- .../Telegram/TelegramHandler.cs | 24 +++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/MicrosoftGraphAPIBot/Telegram/TelegramHandler.cs b/MicrosoftGraphAPIBot/Telegram/TelegramHandler.cs index 83b349e..0387661 100644 --- a/MicrosoftGraphAPIBot/Telegram/TelegramHandler.cs +++ b/MicrosoftGraphAPIBot/Telegram/TelegramHandler.cs @@ -55,7 +55,17 @@ public async Task AddAdminPermissionAsync(long telegramId, string userName } logger.LogInformation($"Telegram user: {telegramId}(@{userName}) 升級管理者權限:成功"); - await db.SaveChangesAsync(); + if (!db.Database.IsInMemory()) + { + // https://docs.microsoft.com/zh-tw/ef/core/saving/explicit-values-generated-properties#explicit-values-into-sql-server-identity-columns + await db.Database.OpenConnectionAsync(); + db.Database.ExecuteSqlRaw("SET IDENTITY_INSERT dbo.TelegramUsers ON"); + db.SaveChanges(); + db.Database.ExecuteSqlRaw("SET IDENTITY_INSERT dbo.TelegramUsers OFF"); + await db.Database.CloseConnectionAsync(); + } + else + await db.SaveChangesAsync(); return true; } @@ -84,7 +94,17 @@ public async Task RemoveAdminPermissionAsync(long telegramId, string userName) db.TelegramUsers.Update(telegramUser); } - await db.SaveChangesAsync(); + if (!db.Database.IsInMemory()) + { + // https://docs.microsoft.com/zh-tw/ef/core/saving/explicit-values-generated-properties#explicit-values-into-sql-server-identity-columns + await db.Database.OpenConnectionAsync(); + db.Database.ExecuteSqlRaw("SET IDENTITY_INSERT dbo.TelegramUsers ON"); + db.SaveChanges(); + db.Database.ExecuteSqlRaw("SET IDENTITY_INSERT dbo.TelegramUsers OFF"); + await db.Database.CloseConnectionAsync(); + } + else + await db.SaveChangesAsync(); } #region Azure app