2017-08-07 1 views
1

Je suis débutant pour .NET mais je connais assez bien la création d'applications Web utilisant une architecture à 3 niveaux. J'ai généralement un projet d'application Web pour les formulaires Web et un projet d'application wpf pour conserver mes classes de domaine, de contrôleur et de couche d'accès aux données.C# Common DbContext pour l'identité ASP.NET avec des formulaires Web

Je suis familier avec la création d'une classe DbContext et son utilisation pour traiter la base de données via EF. J'ai ajouté .NET Identity à mon projet d'application Web, mais j'ai besoin d'apporter des modifications à l'utilisateur d'identité et d'y ajouter plus de données. Je suis this tutoriel pour accomplir cela, mais il est destiné à MVC. J'ai 2 fichiers de contexte séparés en ce moment, un pour l'identité et l'autre pour mes buts habituels. Y a-t-il un moyen que je puisse avoir un contexte?

mon DbContext ressemble,

namespace ExammerCore.Infrastructure 
{ 
    class ExammerContext : DbContext 
    { 
     public ExammerContext() 
      : base("DefaultConnection") 
     { 

     } 
    } 
} 

la DbContext identité J'utilisant le tutoriel fait ressemble,

namespace ExammerCore.Infrastructure 
{ 
    class IdentityContext : IdentityDbContext<ApplicationUser> 
    { 
     public IdentityContext() 
      : base("DefaultConnection") 
     { 
     } 
    } 
} 

Mon IdentityModels.cs ressemble,

namespace ExammerCore.Domain 
{ 
    public class ApplicationUser : IdentityUser 
    { 

     //You can extend this class by adding additional fields like Birthday 
     public string BirthDate { get; set; } 

    } 

} 

comment peut Je mélange ces deux ensemble pour avoir une classe DbContext? ou existe-t-il un autre moyen d'ajouter des champs personnalisés à un utilisateur sans hériter de classes d'identité? Ma structure de solution ressemble à ceci, Solution structure

J'ai googlé beaucoup ont pas trouvé une réponse.

Répondre

0

Modifier la ligne

class ExammerContext : DbContext 

à

class ExammerContext : IdentityDbContext<ApplicationUser> 

pour tirer toutes les identités DbSets dans votre ExammerContext

+0

Est-ce tout ce que j'ai à faire? Je serai capable de gérer le reste de mon modèle dans ce contexte aussi bien après ça? –

+0

Oui, vous n'avez pas besoin du IdentityContext distinct. Il ne vous restera plus que votre ExammerContext mis à jour. – mcbowes

0

dans votre dbcontext vous devriez avoir des propriétés qui représentent ce que les entités se servent à construire tables .... qui devrait ressembler à quelque chose comme ça ...

class ExammerContext : DbContext 
{ 
    public IDbSet<ApplicationUser> ApplicationUsers { get; set; } 
    // add other classes/tables here. 

    public ExammerContext() 
     : base("DefaultConnection") 
    { 

    } 
} 

De cette façon, vous n'aurez besoin que de votre contexte.