Isso pode chegar um pouco tarde para você, mas vou deixá-lo caso alguém mais tenha o mesmo problema. Então, finalmente consegui fazer o Identity 2.0 e o Oracle funcionarem juntos. As etapas a seguir funcionam se você não quiser fazer nenhuma alteração no IdentityUser padrão (por exemplo, se você concordar em ter um char ID em vez de int ou long) e quiser apenas as tabelas em seu esquema Oracle existente.
-
Crie tabelas de identidade no Oracle. Você pode alterar os nomes das tabelas se quiser, apenas certifique-se de incluir as colunas necessárias para que o Identity funcione com ela. Você também pode adicionar quaisquer colunas extras que possa precisar em seu aplicativo (script originalmente encontrado em Devart , copiei para um gist no caso de quebra de URL):
Resumo aqui
-
Se você estiver usando um arquivo EDMX, precisará adicionar uma nova string de conexão porque a que é gerada automaticamente não funcionará, você precisa de uma string de conexão padrão. Tente seguir este modelo:
<add name="IdentityContext" connectionString="Data Source=localhost:1521/xe;PASSWORD=password;USER ID=username;" providerName="Oracle.ManagedDataAccess.Client" />
-
Diga ao seu ApplicationDbContext para usar sua nova connectionString
public ApplicationDbContext() : base("IdentityContext", throwIfV1Schema: false) { }
-
Diga ao Identity para usar seu esquema e tabelas existentes. Adicione este método dentro da definição ApplicationDbContext encontrada em IdentityModels.cs:
protected override void OnModelCreating(DbModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); // MUST go first. modelBuilder.HasDefaultSchema("YOUR_SCHEMA"); // Use uppercase! modelBuilder.Entity<ApplicationUser>().ToTable("AspNetUsers"); modelBuilder.Entity<IdentityRole>().ToTable("AspNetRoles"); modelBuilder.Entity<IdentityUserRole>().ToTable("AspNetUserRoles"); modelBuilder.Entity<IdentityUserClaim>().ToTable("AspNetUserClaims"); modelBuilder.Entity<IdentityUserLogin>().ToTable("AspNetUserLogins"); }
-
Reconstrua e pronto!
Deixe-me saber se funciona para você!