में एकता के साथ प्रति अनुरोध dbcontext को हल करना मैं इस काम को करने के लिए संघर्ष कर रहा हूं। मैं एकता और Unity.AspNet.WebApi संकुल (v 1404/05/03) मिल गया है स्थापित किया है और सक्रियण कोड जो संकुलWebApi
public static class UnityWebApiActivator
{
/// <summary>Integrates Unity when the application starts.</summary>
public static void Start()
{
var container = UnityConfig.GetConfiguredContainer();
var resolver = new UnityHierarchicalDependencyResolver(container);
GlobalConfiguration.Configuration.DependencyResolver = resolver;
// DynamicModuleUtility.RegisterModule(typeof(UnityPerRequestHttpModule));
}
/// <summary>Disposes the Unity container when the application is shut down.</summary>
public static void Shutdown()
{
var container = UnityConfig.GetConfiguredContainer();
container.Dispose();
}
}
और मेरे प्रकार पंजीकरण के साथ आया था नीचे इस तरह दिखता है:
public static void RegisterTypes(IUnityContainer container)
{
container.RegisterType<IAuditService, AuditService>(
new PerThreadLifetimeManager(),
new InjectionConstructor(new SecurityDbContext()));
}
अब तक मैंने बिना सफलता के PerThreadLifetimeManager और TransientLifetimeManager को आजमाया है। मुझे यूनिटी.एमवीसी पैकेज भी मिला है और msdn द्वारा सुझाए गए अनुसार PerRequestLifetimeManager का उपयोग करने की कोशिश की लेकिन कोई भाग्य नहीं है। यह हमेशा मुझे dbcontex का एक ही उदाहरण देता है।
मैं किसी भी एमवीसी निर्भरता को शामिल नहीं करता क्योंकि यह पूरी तरह से वेबएपी है लेकिन जब मैं यूनिटी.एमवीसी का उपयोग करने की कोशिश करता हूं, तो मैंने कुछ http रनटाइम त्रुटियों को भी समाप्त कर दिया।
किसी के पास वेबएपी में एकता के साथ प्रति अनुरोध dbcontext को हल करने के लिए कोई अच्छा सुझाव/उदाहरण है, अधिमानतः बिना किसी एमवीसी निर्भरता के?
इस 'SecurityDbContext' प्राप्त करने में सक्षम। क्या यह स्वयं एक वर्ग को परिभाषित करता है जो डीबोनटेक्स्ट क्लास को विरासत में ले रहा है? – picnic4u
हां सुरक्षा डीबीकॉन्टेक्स्ट डीबीकॉन्टेक्स्ट को विरासत में लेता है और यह वह जगह है जहां मैं ऑनमोडेल क्रिएटिंग विधि को ओवरराइड करके ईएफ मैपिंग जोड़ता हूं। – Otake
@ ओटेक इसे नियंत्रक पर कैसे घोषित किया जाता है ताकि यह काम करे? TKS – Pascal