C# 使用两个上下文
Im使用EF(实体框架代码优先)和具有统一性(依赖项注入)和工作单元的存储库模式。我有两个上下文,但我想根据请求使用其中一个上下文。大概是这样的:C# 使用两个上下文,c#,entity-framework,C#,Entity Framework,Im使用EF(实体框架代码优先)和具有统一性(依赖项注入)和工作单元的存储库模式。我有两个上下文,但我想根据请求使用其中一个上下文。大概是这样的: public bool Save(User user, RequestTyoe request) { //这里应用一些根据请求上下文决定的模式 使用 有什么建议吗 真的,我不知道你用什么图案 谢谢如果您需要通用存储库和不同的上下文,那么您可以指定要传递的上下文类型 public abstract class GenericRepository<
public bool Save(User user, RequestTyoe request)
{
//这里应用一些根据请求上下文决定的模式
使用
有什么建议吗
真的,我不知道你用什么图案
谢谢如果您需要通用存储库和不同的上下文,那么您可以指定要传递的上下文类型
public abstract class GenericRepository<C, T> :
IGenericRepository<T> where T : class where C : DbContext, new()
公共抽象类GenericRepository:
IGenericRepository,其中T:class,其中C:DbContext,new()
您可以使用CastleWindsor轻松注册多个服务:
努吉:
我不明白-您有两个不同的上下文,它们都保存
User
对象?上下文之间的区别是什么?区别是列的数量…好的,我有我的应用层。在这一层中,我有一个服务(UserService
,它实现了一个接口:IUserService
),在其中我有一个属性:IUserRepository
(该属性使用Unity初始化);现在,您告诉我,在我的服务的实现中,我应该用igenericreportory
替换IUserRepository
,如果您想切换上下文。
public abstract class GenericRepository<C, T> :
IGenericRepository<T> where T : class where C : DbContext, new()
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;
}
}