У мене є веб-сервіс, до якого телефонують кожні кілька разівсекунд, що робить купу речей, а потім виконує об'ємну вставку, яка в даний час займає в середньому пів секунди для виклику SaveChanges (). Я хотів би зберегти всі зміни асинхронно, тому що тоді я можу викликати свою веб-службу кілька разів на секунду і просто буферувати будь-які зміни бази даних, щоб бути збереженими кварцовим таймером, що повинно призвести до кращої продуктивності.
Я помітив, що після виконання функції веб-служби, якщо "SaveChanges" не було викликано об'єктом моделі бази даних сутності, будь-які очікувані зміни бази даних будуть повернуті назад.
Чи можна мені асинхронно зберігати зміни в базі даних і як би я це зробив?
Відповіді:
0 для відповіді № 1В принципі, ви можете використовувати будь-який з асинхроннихпідходи, доступні в .NET для таких цілей. Якщо ви можете використати .NET 4.5, я б радив вам поглянути на методи асинхронізації / очікування, оскільки вони "досить прості у використанні. Entity Framework не підтримує асинхронізацію / очікування з поля, але ви можете додати свої прості обгортки, використовуючи TaskCompletionSource клас