Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

System.Data.Entity.Infrastructure.CommitFailedException:C# Multithreading &SQL Server 2012

Сблъсквал съм се със същия sssue. Ако резбованото приложение използва един и същ контекстен обект за всички нишки, ние се сблъскваме с този вид проблеми. Създайте отделни контекстни обекти за всяка нишка. Може да добавяте малко повече натоварване към вашата RAM, но дава яснота относно състоянията на обектите в контекста.

List<Task> tasks = new List<Task>();
foreach (var item in list)
{
   ObjectContext oContext = new ObjectContext("MyConnection");
   Task t = Task.Factory.StartNew(() =>
   {
      this.Update(item,oContext);
   });
   tasks.Add(t);
}

Task.WaitAll(tasks.ToArray());



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Свързване на празен списък или нулева стойност към параметър със стойност на таблица в съхранена процедура (.NET)

  2. Експортиране на резултатите от заявката във файл в движение

  3. Как да внедрим полиморфни асоциации в съществуваща база данни

  4. Ескалация на заключване - какво се случва тук?

  5. Предайте списък-структура като аргумент на съхранена процедура