2013-10-18 17 views
-1

我有两个登记容器:解决命名从温莎的datacontext组件容器

container.Register(Component.For<DataContext>().LifestylePerWebRequest()); 
container.Register(Component.For<DataContext>().LifestyleTransient().Named("transientContext")); 

我试图解决命名实例(瞬态)是这样的:

var instance = Container.Instance.Resolve<DataContext>("transientContext"); 
    instance.Table1.Add(new Table1()); 
    instance.SaveChanges(); 

但在调用SaveChanges( )被抛出一个异常“无效操作,连接关闭”。

可能是什么问题?

THX!

回答

0

我怀疑温莎混合起来的决心方法2:然后

Container.Instance.Resolve<T>(object argumentAsAnonymousType) //the one its calling 
Container.Instance.Resolve<T>(string key) //the one it should be calling 

温莎的对待你的钥匙“transientContext”作为DataContext的一个参数。 DataContext的参数是一个连接字符串ref,它导致实体框架抛出给定的异常。要解决您可以使用命名参数:

var instance = Container.Instance.Resolve<DataContext>(key: "transientContext");