Тема: Проблема з записом бази даних sqlite.Net core - EF-TelegramBot
Всім привіт! Пишу бота на C# Net core. Використовую Entity Framework та Sqlite і виникла проблема.
В цьому коді все працює добре
       async static Task Update(ITelegramBotClient clientBot, Telegram.Bot.Types.Update update, CancellationToken token)
        {
            var message = update.Message;
            ReplyKeyboardMarkup replyKeyboardMarkup = new ReplyKeyboardMarkup(new[]
{
            new KeyboardButton[] { "Button", "Button" },
            new KeyboardButton[] { "Button", "Button" },
            new KeyboardButton[] { "Button", "Button" },
            new KeyboardButton[] { "Button", "Button" }
})
            {
                ResizeKeyboard = true
            };
            if (message.Text != null)
            {
                if (message.Text=="/start")
                {
                    await using Stream stream = System.IO.File.OpenRead(@"C:\FarmBot\FarmImage.jpg");
                    await clientBot.SendPhotoAsync(message.Chat.Id, new InputOnlineFile(stream, "FarmImage.jpg"), message.Caption = "text "+ message.Chat.FirstName + "text", replyMarkup: replyKeyboardMarkup);
                    using (ApplicationContext db = new ApplicationContext())
                    {
                        UsersDTO dto = new UsersDTO();
                        dto.TelegramID = (int)message.Chat.Id;
                        dto.Balance = 0;
                        dto.Plot = 1;
                        dto.Tractor = 0;
                        dto.Grain = 50;
                        dto.Incubator = 0;
                        dto.Chickens = 0;
                        dto.Eggs = 0;
                        db.Users.Add(dto);
                        db.SaveChanges();
                        Console.WriteLine("Данi збереженi");
                        var users = db.Users.ToList();
                        foreach (UsersDTO user in users)
                            Console.WriteLine($"{user.Id}.{user.TelegramID}, {user.Balance}, {user.Plot}");
                    }Але це мене не влаштовує тому що кожного разу коли буде виконуватися /start буде додаватися той самий TelegtemID в базу даних де він уже є. 
Якщо я намагаюсь скористатись пошуком чи є цей ID в базі видає помилку
 using (ApplicationContext db = new ApplicationContext())
                    {
                        var client = db.Users.Find((int)message.Chat.Id)
                        if(client == null){
                        UsersDTO dto = new UsersDTO();
                        dto.TelegramID = (int)message.Chat.Id;
                        dto.Balance = 0;
                        dto.Plot = 1;
                        dto.Tractor = 0;
                        dto.Grain = 50;
                        dto.Incubator = 0;
                        dto.Chickens = 0;
                        dto.Eggs = 0;
                        db.Users.Add(dto);
                        db.SaveChanges();
                        Console.WriteLine("Данi збереженi");
                        var users = db.Users.ToList();
                        foreach (UsersDTO user in users)
                            Console.WriteLine($"{user.Id}.{user.TelegramID}, {user.Balance}, {user.Plot}");
                       }
                    }В цьому коді додав просту перевірку чи є цей клієнт в базі, якщо немає додаємо. І з цією перевіркою код вже не праює
 private static Task Error(ITelegramBotClient client, Exception exception, CancellationToken token)
 {
     throw new NotImplementedException();
   
 }ось переходить в Task Error
Подумав можливо проблема в Task зробив окремий метод для додавання клієнтів
 if (message.Text=="/start")
{AddClient(message.Chat.Id)
}
async static void AddClient(int id) {
  await using (ApplicationContext db = new ApplicationContext())
    {
       var add = db.Users.Find(id);
        Console.WriteLine(add);
        if (add == null)
        {
            UsersDTO dto = new UsersDTO();
            dto.TelegramID = id;
            dto.Balance = 0;
            dto.Plot = 1;
            dto.Tractor = 0;
            dto.Grain = 50;
            dto.Incubator = 0;
            dto.Chickens = 0;
            dto.Eggs = 0;
            db.Users.Add(dto);
            db.SaveChanges();
            Console.WriteLine("Данi збереженi");
            var users = db.Users.ToList();
            foreach (UsersDTO user in users)
                Console.WriteLine($"{user.Id}.{user.TelegramID}, {user.Balance}, {user.Plot}");
        }
    }Після цього Помилка стається на db.SaveChanges(); помилка 5 База даних заблокована
Що я роблю не так? Як це правильно написати?Буду вдячний будь якій допомозі