我想在存储库类中设置Entity Framework ObjectContext - ObjectContext是存储库的属性。
我正在使用Unity XML配置:
<register type="IUsersRepository" mapTo="SqlUsersRepository" >
<property name="MyObjectContext">
<value value="Per-Request" typeConverter="ObjectContextTypeConverter" />
</property>
</register>
ObjectContextTypeConverter解释属性的值 - 在本例中为“Per-Request” - 并使用存储在HttpContext.Current.Items中的ObjectContext(asp.net中的每个请求集合)。
只有在Global.asax文件的Application_Start方法中加载Unity配置时,才会调用ObjectContextTypeConverter.ConvertFrom方法一次。然而,当我尝试使用Unity解析接口时,将不会再次调用ConvertFrom方法。
有没有办法解决这个问题?
答案 0 :(得分:0)
原因是您将其设置为值。您可以将其设置为依赖项:
<property name="MyObjectContext">
<dependency />
</property>
并通过注入工厂注入上下文:
Container.RegisterType<ObjectContext>(
new InjectionFactory(c => GetTheContextInstance()));