Oracle
 sql >> Baza danych >  >> RDS >> Oracle

ASP.NET MVC5 — utrzymywanie użytkowników w bazie danych Oracle

Może się to okazać nieco spóźnione, ale zostawię to na wypadek, gdyby ktoś inny napotkał ten sam problem. Udało mi się w końcu sprawić, by Identity 2.0 i Oracle współpracowały ze sobą. Poniższe kroki działają, jeśli nie chcesz wprowadzać żadnych zmian w domyślnym IdentityUser (np. jeśli nie masz nic przeciwko posiadaniu identyfikatora char zamiast int lub long) i chcesz po prostu tabele w istniejącym schemacie Oracle.

  1. Twórz tabele tożsamości w Oracle. Jeśli chcesz, możesz zmienić nazwy tabel, po prostu upewnij się, że zawiera niezbędne kolumny, aby Identity z nimi współpracowało. Możesz również dodać dowolne dodatkowe kolumny, których możesz potrzebować w swojej aplikacji (skrypt pierwotnie znaleziony na Devart , skopiowałem go do Gist na wypadek awarii adresu URL):

    Napisz tutaj

  2. Jeśli używasz pliku EDMX, musisz dodać nowy ciąg połączenia, ponieważ ten, który zostanie wygenerowany automatycznie, nie będzie działał, potrzebujesz standardowego ciągu połączenia. Spróbuj skorzystać z tego szablonu:

    <add name="IdentityContext" connectionString="Data Source=localhost:1521/xe;PASSWORD=password;USER ID=username;" providerName="Oracle.ManagedDataAccess.Client" />

  3. Poinformuj ApplicationDbContext, aby użył nowego ciągu połączenia

    public ApplicationDbContext()
        : base("IdentityContext", throwIfV1Schema: false)
    {
    }
    
  4. Powiedz Identity, aby używała istniejącego schematu i tabel. Dodaj tę metodę w definicji ApplicationDbContext znajdującej się w 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");
    }
    
  5. Przebuduj i gotowe!

Daj mi znać, czy to działa dla Ciebie!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Podziel String z nową linią i dodaj tablicę w PL sql Oracle

  2. problem z użyciem parametrów Oracle w SELECT IN

  3. Typ Java dla daty/godziny podczas korzystania z Oracle Date z Hibernate

  4. jak wybrać nawet rekordy z tabeli w oracle?

  5. Jak skonfigurować przydział rozmiaru w pliku persistence.xml zamiast Entity?