.NET Core SqlException: Неверное имя объекта 'IdentityUserClaim'.при входе - PullRequest
0 голосов
/ 26 июня 2019

У меня есть 2 приложения:

ManagementStudio и DocumentStudio. ManagementStudio состоит из нескольких библиотек, на которые ссылается DocumentStudio.

Когда я пытаюсь войти в DocumentStudio, я получаю эту ошибку:

enter image description here

Я не уверен, что происходит, потому что я уже включил IdentityUserClaim в список своих моделей:

[Table("IdentityUserClaim", Schema = "ManagementStudio")]
public class UserClaims : IdentityUserClaim<string>
{
    [Key]
    public override int Id { get; set; }
}

enter image description here

public DbSet<ApplicationUsers> ApplicationUsers { get; set; }
public DbSet<UserRoles> UserRoles { get; set; }
public DbSet<UserClaims> UserClaims { get; set; }
public DbSet<IdentityUserClaim<string>> IdentityUserClaim { get; set; }
public DbSet<IdentityUserRole<string>> IdentityUserRole { get; set; }
public DbSet<Applications> Applications { get; set; }
public DbSet<Roles> Roles { get; set; }
public DbSet<ApiAccess> ApiAccess { get; set; }
public DbSet<EventLogs> EventLogs { get; set; }
public DbSet<ActivityLogs> ActivityLogs { get; set; }
public DbSet<CommunicationLogs> CommunicationLogs { get; set; }
public DbSet<UploadLogs> UploadLogs { get; set; }
public DbSet<Repositories> Repositories { get; set; }
public DbSet<Emails> Emails { get; set; }
public DbSet<Assets> Assets { get; set; }
public DbSet<Announcements> Announcements { get; set; }
public DbSet<AnnouncementAttachments> AnnouncementAttachments { get; set; }

Что еще я могу сделать, чтобы сделать эту работу?

EDIT:

Я заметил, что вызывается мой CustomClaimsHelper, поэтому я включаю и его:

public class CustomClaimsCookieSignInHelper<TIdentityUser> where TIdentityUser : IdentityUser
    {

        private readonly SignInManager<TIdentityUser> _signInManager;

        public CustomClaimsCookieSignInHelper(SignInManager<TIdentityUser> signInManager)
        {
            _signInManager = signInManager;
        }

        public async Task SignInUserAsync(TIdentityUser user, bool isPersistent, IEnumerable<Claim> customClaims)
        {
            var claimsPrincipal = await _signInManager.CreateUserPrincipalAsync(user);
            var identity = claimsPrincipal.Identity as ClaimsIdentity;
            var claims = (from c in claimsPrincipal.Claims select c).ToList();
            var savedClaims = claims;
            if (customClaims != null)
            {
                identity.AddClaims(customClaims);
            }
            await _signInManager.Context.SignInAsync(IdentityConstants.ApplicationScheme,
                claimsPrincipal,
                new AuthenticationProperties { IsPersistent = isPersistent });
        }
    }

РЕДАКТИРОВАТЬ:

Я протестировал ручное создание таблицы с именем IdentityUserClaim с теми же столбцами, что и у моей таблицы ManagementStudio.IdentityUserClaim, и она работает. Это означает, что если я удалю схему для IdentityUserClaim, приложение будет работать. Однако есть ли способ заставить DocumentStudio искать правильную схему?

...