Това може да пристигне малко късно за вас, но ще го оставя, в случай че някой друг се сблъска със същия проблем. Така че най-накрая успях да накарам Identity 2.0 и Oracle да работят заедно. Следните стъпки работят, ако не искате да правите никакви промени в IdentityUser по подразбиране (напр. ако сте добре да имате char ID вместо int или long) и просто искате таблиците във вашата съществуваща Oracle схема.
-
Създайте таблици за идентичност на Oracle. Можете да промените имената на таблиците, ако желаете, просто се уверете, че сте включили необходимите колони, за да може Identity да работи с нея. Можете също да добавите всякакви допълнителни колони, от които може да се нуждаете в приложението си (скрипт, първоначално намерен на Devart , копирах го в същността в случай, че URL се повреди):
Същността тук
-
Ако използвате EDMX файл, трябва да добавите нов низ за връзка, тъй като този, който се генерира автоматично, няма да работи, трябва ви стандартен низ за връзка. Опитайте да следвате този шаблон:
<add name="IdentityContext" connectionString="Data Source=localhost:1521/xe;PASSWORD=password;USER ID=username;" providerName="Oracle.ManagedDataAccess.Client" />
-
Кажете на вашия ApplicationDbContext да използва новия ви connectionString
public ApplicationDbContext() : base("IdentityContext", throwIfV1Schema: false) { }
-
Кажете на Identity да използва вашата съществуваща схема и таблици. Добавете този метод в дефиницията на ApplicationDbContext, намерена в 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"); }
-
Реконструирайте и това е!
Кажете ми дали работи за вас!