1

Je vais avoir un problème étrange avec nouvelle base de données Entity Framework pour 4problème de blocage Entity Framework

.NET

J'ai un SQL Server 2005 (EXPRESS) et mon service à deux écrit des données à l'aide de tables Entity Framework. Disons que les tables sont TableA et TableB. TableB a une clé étrangère à TableA. Dans mon programme, il y a plusieurs threads qui écrivent des données en parallèle. Chaque thread a son propre ObjectContext. Le programme crée l'objet TableA et le place dans le contexte de l'objet. Ensuite, les objets pour TableB sont créés et placés dans le contexte de l'objet. Cela se répète pour plusieurs éléments TableA.

Enfin lorsque la méthode est appelée ObjectContext.Save je vois une erreur de blocage dans le journal:

System.Data.SqlClient.SqlException: Transaction (processus ID 56) a été bloquée sur les ressources de verrouillage avec un autre processus et a été choisi comme victime de l'impasse. Réexécutez la transaction.

Il semble que cela dépende en quelque sorte des options de base de données car il est reproduit uniquement sur une base de données particulière. Une nouvelle base de données le problème n'est pas reproduit. Quels paramètres de base de données \ table peuvent influencer le blocage alors que Entity Framework effectue l'insertion par lots? Ou peut-être le problème ailleurs?

+1

... heh Il semble que je trouve la réponse. Le paramètre primaryKey n'a pas été défini dans la base de données TableB où le problème a été reproduit. – lostaman

Répondre

0

par votre commentaire:

TableB n'a pas fixé primaryKey dans la base de données où a été question reproduit

Questions connexes