J'essaie de faire fonctionner EF4 avec ncommon 1.1 qui fournit des modèles DDD tels que UnitOfWork, Specification, Repository.DDD - Enity Framework 4 et ncommon
La ligne de configuration NCommon jette l'exception suivante:
SynchronizationLockException survenue
procédé de synchronisation de l'objet a été appelé à partir d'un bloc non synchronisé de code.
Le code en jettant l'erreur est:
.ConfigureData<EFConfiguration>(config => config.WithObjectContext(() => new CoreContext(connectionString)))
Voici le code que je suis en cours d'exécution.
private static void ConfigureIoc()
{
var container = new UnityContainer();
var serviceLocator = new UnityServiceLocator(container);
ServiceLocator.SetLocatorProvider(() => serviceLocator);
container
.RegisterType(typeof(IUnitOfWorkScope), typeof(UnitOfWorkScope), new InjectionConstructor())
.RegisterType(typeof(IList<>), typeof(List<>), new InjectionConstructor())
.RegisterType<IVerticalRepository, EfVerticalRepository>()
;
const string connectionString =
@"metadata=res://*/Core.csdl|res://*/Core.ssdl|res://*/Core.msl;provider=System.Data.SqlClient;provider connection string="";Data Source=devdatabase;Initial Catalog=InfoChoiceAdmin;Persist Security Info=True;User ID=sa;Password=sa;MultipleActiveResultSets=True""";
var adapter = new UnityContainerAdapter(container);
NCommon.Configure.Using(adapter)
.ConfigureState<DefaultStateConfiguration>()
.ConfigureData<EFConfiguration>(config => config.WithObjectContext(() => new CoreContext(connectionString)))
.ConfigureUnitOfWork<DefaultUnitOfWorkConfiguration>(config => config.AutoCompleteScope());
Ioc.Initialize(serviceLocator);
}
L'avez-vous essayé sur un autre ordinateur? Je demande parce que la semaine dernière j'avais une étrange exception similaire dans le projet utilisant Unity. Sans aucun changement dans le projet de code a cessé de travailler uniquement sur mon ordinateur. J'ai dû supprimer toute la solution de mon ordinateur et supprimer le formulaire d'espace de travail TFS. Ensuite, j'ai créé un nouvel espace de travail et une solution téléchargée et cela a fonctionné. –
Merci pour la réponse, je l'ai essayé sur un autre ordinateur avec le même résultat. –