具有Identity 2.0和实体框架的工厂模式

时间:2016-09-08 15:07:24

标签: c# entity-framework asp.net-web-api

我们正在开发一个包含Entity Framework和Identity 2.0的Full Stack授权WebApi。

它基于这里的git repo

WebApi Full Stack Entity Framework Repository

在我们的服务层,我们从上下文传递自定义接口,即

    private readonly Func<IGPFocusDataContext> _contextFactory;

    public PatientService(Func<IGPFocusDataContext> contextFactory)
    {
        this._contextFactory = contextFactory;
    }

我已经创建了一个类似的UserService,此时我想以类似的方式注入UserManager和RoleManager接口。

有人可以推荐这样做的最好方法吗?

1 个答案:

答案 0 :(得分:1)

查看repo,您​​可以将UserManger和RoleManager的实例/实现添加到UnityConfig.cs中的Unity容器中,例如:

container.RegisterType<UserManager, UserManager>();

或者

container.RegisterType<IUserManager, UserManager>();

然后在您的UserService

private readonly IUserManger _userManger;
private readonly IRoleManger _roleManger;

public UserService(IUserManger userManger, IRoleManager roleManger)
{
    this._userManager = userManger;
    this._roleManger = roleManger;
}

当您在控制器中添加类似于PatientController中的PatientService的服务时,虽然我不是Unity的家庭,但我希望Unity将它们联系在一起。