使用来自UserManager的Owin用户可查询并加入另一个实体

时间:2016-12-31 06:22:33

标签: c# entity-framework owin

我正在使用ASP.net Identity 2.2,我想与其他实体加入我的用户(可查询)。 我的DB上下文是这样的:

 public class ApplicationDbContext:IdentityDbContext<ApplicationUser>
    {

        public ApplicationDbContext()
            :base("DefaultConnection",throwIfV1Schema:false)
        {
            Configuration.ProxyCreationEnabled = false;
            Configuration.LazyLoadingEnabled = false;
        }

        public DbSet<Class> Class{ get; set; }

        public static ApplicationDbContext Create()
        {
            return new ApplicationDbContext();
        }
    }

我的BaseController有这样的东西:

 public class BaseApiController : ApiController
{
     protected ApplicationUserManager AppUserManager
            {
                get
                {
                    return _appUserManager ?? Request.GetOwinContext().GetUserManager<ApplicationUserManager>();
                }
            } 
}

我可以在我的控制器中将我的用户视为可查询

  var users = AppUserManager.Users

但是当我想将我的表加入此用户时,我会收到以下错误。

我在我的Api的构造函数中创建了dbContext new

我有一个小应用程序,我不想使用DI容器。

  

指定的LINQ表达式包含对查询的引用   与不同的背景相关联

使用其他表加入用户的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

例如,如果您想要User加入Class

var applicationDbContext = HttpContext.GetOwinContext().Get<ApplicationDbContext>();
var query = from user in applicationDbContext.Users
            join class in ApplicationDbContext.Class on user.Id equals class.UserId
            select new { user, class };