2017-06-04 12 views
7

Geçtiğimiz birkaç gün için Kimlik sistemi Core ile birlikte Kimlik sistemi ile mücadele ediyorum. İşte bazı bilgiler sorunumu ifşa öncesinde var:Çekirdek için Kimlik ile EFCore Kullanma

    tembel yüklenmesini desteklemez
  1. Varlık çerçeve Çekirdek, bu şimdiye hangi öğeleri söylemek için
  2. dahil edilecek öğeleri diyerek istekli yükleme kullanıyorum demektir

    services.AddIdentity<ApplicationUser, ApplicationRole>(options => 
    { 
        options.Cookies.ApplicationCookie.AutomaticChallenge = false; 
    }) .AddUserManager<UserManager>() 
        .AddRoleManager<RoleManager>() 
        .AddUserStore<UserStore>() 
        .AddRoleStore<RoleStore>() 
        .AddEntityFrameworkStores<ApplicationDbContext, int>() 
        .AddDefaultTokenProviders(); 
    
: I, her bir depo olarak bir usul (alınan özellikler hemen sabit olan) geçersiz almak isteyen bir amacı
  • kullanıyorum Kimlik sistemi olarak yapılandırılmıştır

    Asistan sorunun kendisine:

    Ben belirteçleri oluşturmak için kimlik sistemi kullanmak vb kullanıcıları olsun ama bu kadar ben UserManager nesnesinin kendisi istekli yükleme yapamaz istiyoruz yöntemleri Task<ApplicationUser> ve iade Include() yönteminin kendisi IQueryable gerektirir (istekli yükleme yapmak için). Her ikisi de istekli yükleme ve UserManager kullanabilmek için genel yolu nedir?

  • +0

    Bu sorunu https://github.com/aspnet/Identity/issues/1082#issuecomment-273514725 adresinde takip edebilirsiniz. Sorununuzu çözmek için iyi olduğunu düşünüyorum. –

    cevap

    2

    Doğrudan UserManger.Users'ı çağırmanın en basit yolu. Şunun gibi:

    ApplicationUser user = await userManager.Users.Include(s => s.Sales).Where(e => e.Email == "[email protected]").FirstOrDefaultAsync(); 
    
    0

    Belki de şu şekilde istekli yükleme ve UserManager kullanmak istiyorum:

    private async Task<ApplicationUser> GetSingleUser(Expression<Func<ApplicationUser, bool>> 
         predicate, params Expression<Func<ApplicationUser, object>>[] includeProperties) 
        { 
         IQueryable<ApplicationUser> query = _userManager.Users; 
         foreach (var includeProperty in includeProperties) 
         { 
          query = query.Include(includeProperty); 
         } 
    
         return await query.Where(predicate).FirstOrDefaultAsync(); 
        } 
    

    Umut bu yardım!

    İlgili konular