2017-07-17 12 views
0

访问我的网站SPA时加载,这使得该API调用一些时,我得到了以下错误:C#EF6进行多次异步调用一个上下文使用Unity - Asp.Net网络API

第二次手术开始在之前的 之前在此环境下完成异步操作。使用'await'来确保在调用另一个方法 之前,任何异步操作都已完成。任何实例成员不保证是线程 安全。

如果我不使用相同的背景和尝试更新的值,我得到了下面的错误,看到了这个问题:

Entity Framework 6 - Dependency Injection with Unity - Repository pattern - Add or Update exception for many to many relationship

两个对象之间的关系不能定义因为 它们被附加到不同的ObjectContext对象。

这意味着我不能使用的答案这里建议使用多个环境:

https://stackoverflow.com/a/20635076/3850405

UnityConfig.cs:

container.RegisterType<DbContext>(new HierarchicalLifetimeManager()); 
container.RegisterType<ISupplierRepository, SupplierRepository>(); 
container.RegisterType<IContactRepository, ContactRepository>(); 

我该如何解决这个问题?

+0

嗨,请显示引发错误的代码。 –

+0

@MihailStancescu各种API调用,因为它们是异步的,它可以是网站加载时调用的那些方法。看到这个架构:https://stackoverflow.com/questions/45030136/entity-framework-6-dependency-injection-with-unity-repository-pattern-add – Ogglas

回答

0

PerRequestLifetimeManagerMicrosoft.Practices.Unity.Mvc解决它。

container.RegisterType<DbContext>(new PerRequestLifetimeManager()); 
container.RegisterType<ISupplierRepository, SupplierRepository>(); 
container.RegisterType<IContactRepository, ContactRepository>();