/ / Entity Framework - збереження результатів у базі даних асинхронно - c #, сутність-фреймворк

Entity Framework - збереження результатів у базі даних asyncronously - c #, entity-framework

У мене є веб-сервіс, до якого телефонують кожні кілька разівсекунд, що робить купу речей, а потім виконує об'ємну вставку, яка в даний час займає в середньому пів секунди для виклику SaveChanges (). Я хотів би зберегти всі зміни асинхронно, тому що тоді я можу викликати свою веб-службу кілька разів на секунду і просто буферувати будь-які зміни бази даних, щоб бути збереженими кварцовим таймером, що повинно призвести до кращої продуктивності.

Я помітив, що після виконання функції веб-служби, якщо "SaveChanges" не було викликано об'єктом моделі бази даних сутності, будь-які очікувані зміни бази даних будуть повернуті назад.

Чи можна мені асинхронно зберігати зміни в базі даних і як би я це зробив?

Відповіді:

0 для відповіді № 1

В принципі, ви можете використовувати будь-який з асинхроннихпідходи, доступні в .NET для таких цілей. Якщо ви можете використати .NET 4.5, я б радив вам поглянути на методи асинхронізації / очікування, оскільки вони "досить прості у використанні. Entity Framework не підтримує асинхронізацію / очікування з поля, але ви можете додати свої прості обгортки, використовуючи TaskCompletionSource клас