首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DDD - Enity Framework 4和ncommon

DDD - Enity Framework 4和ncommon
EN

Stack Overflow用户
提问于 2010-10-15 11:31:00
回答 1查看 782关注 0票数 0

我正在尝试让EF4与ncommon 1.1一起工作,它提供了UnitOfWork、规范、存储库等DDD模式。

NCommon配置行引发以下异常:

发生了SynchronizationLockException

从未同步的代码块中调用了对象同步方法。

抛出错误的实际代码是:

代码语言:javascript
复制
.ConfigureData<EFConfiguration>(config => config.WithObjectContext(() => new CoreContext(connectionString)))

下面是我正在运行的代码。

代码语言:javascript
复制
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);
    }
EN

回答 1

Stack Overflow用户

发布于 2010-10-19 01:03:11

大卫,

你能发布异常的准确堆栈跟踪吗?我怀疑的是,在对象上下文的构造过程中发生了一些奇怪的事情。

在NCommon中,当您调用config.WithObjectContext(() => CoreContext(connectionString))时,它会在内部创建上下文的一个实例来检查它的MetadataWorkSpace。如果你也能给我提供一个复制品样本,这将有助于追踪这个问题。

谢谢。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3939309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档