У меня странная проблема с новой Entity Framework для .NET 4
У меня есть база данных SQL Server 2005 (EXPRESS), и моя служба записывает данные в две таблицы с использованием Entity Framework.Допустим, таблицы - это TableA и TableB.TableB имеет внешний ключ для TableA.В моей программе есть несколько потоков, которые записывают данные параллельно.Каждый поток имеет свой собственный ObjectContext.Программа создает объект TableA и помещает его в контекст объекта.Затем объекты для TableB создаются и помещаются в контекст объекта.Это повторяется для нескольких элементов TableA.
Наконец, когда вызывается метод ObjectContext.Save, я вижу в журнале тупиковую ошибку:
System.Data.SqlClient.SqlException: Transaction (ProcessID 56) был заблокирован на ресурсах блокировки с другим процессом и был выбран в качестве жертвы тупика.Повторите транзакцию.
Похоже, что она каким-то образом зависит от параметров базы данных, поскольку воспроизводится только для конкретной базы данных.Одна новая база данных проблема не воспроизводится.Какие настройки базы данных и таблицы могут повлиять на взаимоблокировку, когда Entity Framework выполняет пакетную вставку?Или может быть проблема где-то еще?