我正在尝试让EF4与ncommon 1.1一起工作,它提供了UnitOfWork、规范、存储库等DDD模式。
NCommon配置行引发以下异常:
发生了SynchronizationLockException
从未同步的代码块中调用了对象同步方法。
抛出错误的实际代码是:
.ConfigureData<EFConfiguration>(config => config.WithObjectContext(() => new CoreContext(connectionString)))下面是我正在运行的代码。
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);
}发布于 2010-10-19 01:03:11
大卫,
你能发布异常的准确堆栈跟踪吗?我怀疑的是,在对象上下文的构造过程中发生了一些奇怪的事情。
在NCommon中,当您调用config.WithObjectContext(() => CoreContext(connectionString))时,它会在内部创建上下文的一个实例来检查它的MetadataWorkSpace。如果你也能给我提供一个复制品样本,这将有助于追踪这个问题。
谢谢。
https://stackoverflow.com/questions/3939309
复制相似问题