// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; using Microsoft.Data.Entity; using Microsoft.Data.Entity.Metadata; namespace Microsoft.AspNet.Identity.EntityFramework.InMemory.Test { public class InMemoryContext : InMemoryContext { public InMemoryContext() { } public InMemoryContext(IServiceProvider serviceProvider) : base(serviceProvider) { } } public class InMemoryContext : InMemoryContext where TUser : InMemoryUser { public InMemoryContext() { } public InMemoryContext(IServiceProvider serviceProvider) : base(serviceProvider) { } } public class InMemoryContext : DbContext where TUser : InMemoryUser where TRole : IdentityRole where TUserLogin : IdentityUserLogin where TUserRole : IdentityUserRole where TUserClaim : IdentityUserClaim where TKey : IEquatable { public DbSet Users { get; set; } public DbSet Roles { get; set; } public DbSet RoleClaims { get; set; } public InMemoryContext(IServiceProvider serviceProvider) : base(serviceProvider) { } public InMemoryContext() { } protected override void OnConfiguring(DbContextOptions builder) { builder.UseInMemoryStore(); } protected override void OnModelCreating(ModelBuilder builder) { builder.Entity(b => { b.Key(u => u.Id); b.Property(u => u.UserName); b.ToTable("AspNetUsers"); }); builder.Entity() .Key(r => r.Id) .ToTable("AspNetRoles"); builder.Entity() .Key(r => new { r.UserId, r.RoleId }) .ForeignKeys(fk => fk.ForeignKey(f => f.UserId)) .ForeignKeys(fk => fk.ForeignKey(f => f.RoleId)) .ToTable("AspNetUserRoles"); builder.Entity() .Key(l => new { l.LoginProvider, l.ProviderKey, l.UserId }) .ForeignKeys(fk => fk.ForeignKey(f => f.UserId)) .ToTable("AspNetUserLogins"); builder.Entity() .Key(c => c.Id) .ForeignKeys(fk => fk.ForeignKey(f => f.UserId)) .ToTable("AspNetUserClaims"); builder.Entity>() .Key(c => c.Id) .ForeignKeys(fk => fk.ForeignKey(f => f.RoleId)) .ToTable("AspNetRoleClaims"); } } }