使用两个上下文EF



使用EF(首先使用EF框架代码)和统一(依赖项注入)和工作单位的存储库PATERN。我有两个上下文,但我想根据请求的一个上下文。这样的东西:

public bool Save(User user, RequestTyoe request)
{

//在这里应用一些模式来决定请求上下文 使用

   AbstracRepository.Add(user);
   AbstracRepository.UnitOfWork.Commit();
}

任何建议??

PD:我真的不知道什么模式使用...

谢谢

如果您通用存储库和不同的上下文,则可以指定要通过的上下文类型。

public abstract class GenericRepository<C, T> : 
    IGenericRepository<T> where T : class where C : DbContext, new()

您可以使用CastleWindsor轻松注册多个服务:http://docs.castleproject.org/default.aspx?page=mainpage&ns = windsor&amp; asspxautodetectectectectectectectectectecteectcookiesupport=1

nuget:http://www.nuget.org/packages/castle.windsor

public class UserServiceInstaller : IWindsorInstaller
{
    public void Install(IWindsorContainer container, IConfigurationStore store)
    {
        container.Register(Component.For<IUserService1>()
            .ImplementedBy<UserService1>()
            .LifestyleTransient());
        container.Register(Component.For<IUserService2>()
            .ImplementedBy<UserService2>()
            .LifestyleTransient());
    }
}

然后,在您的控制器中,您可以在构造函数中使用服务,并且可以随心所欲。

public class MyController : Controller
{
    private IUserService1 _userService1;
    private IUserService2 _userService2;
    public MyController(IUserService1 userService1, IUserService2 userService2)
    {
        _userService1 = userService1;
        _userService2 = userService2;
    }
}

最新更新