2015-09-01 10 views
5

Desidero creare un sito Web MVC con login/autenticazione utente ecc.Utilizzare lo stesso database sia per le entità personalizzate che per il contesto di identità?

Sto utilizzando EF CodeFirst per creare il mio database.

Se creo un nuovo progetto MVC e selezionare Autenticazione: Account utente individuale, si creerà un nuovo progetto con un già esistente IdentityDbContext ecc

Sono intenzione di continuare a utilizzare questo insieme con la mia DbContext? Un contesto per le entità dei miei progetti e l'altro contesto per le entità Identity? Questo significa che avrò due database separati, o posso dare loro entrambi la stessa stringa di connessione?

So che questa potrebbe essere una domanda a risposta aperta, ma ci sono risorse/esercitazioni valide per l'identità di AspNet?

Finora ho solo trovare le risorse su aspnet Identità in sé, e non come integrare con il resto del progetto/database di

risposta

5

È possibile specificare la stessa stringa di connessione per entrambi vostro contesto modelli personalizzati e il contesto di identità, tutto quello che dovete fare è cambiare la stringa di connessione nel costruttore della classe ApplicationDbContext che risiede nel IdentityModels.cs file in questo modo:

public class ApplicationDbContext : IdentityDbContext<ApplicationUser> 
{ 
    public ApplicationDbContext() 
     : base("YouCustomConnectionString", throwIfV1Schema: false) 
    { 
    } 

    public static ApplicationDbContext Create() 
    { 
     return new ApplicationDbContext(); 
    } 
} 

e le tabelle necessarie per l'identità verrà creato nello stesso database come le altre tue entità, come per la risorsa c'è una buona serie di articoli sull'identità here.

+0

Ci sono degli svantaggi nell'esecuzione di più contesti? – mejobloggs

+0

@mejobloggs Non c'è nulla che io sappia, hai più contesto ma stessa stringa di connessione quindi stesso database, al contrario, penso che abbia un vantaggio nel rendere le tue entità più gestibili. –

+0

Sei in grado di fornire un esempio? Non riesco a capire come avere più contesti. Cosa succede se voglio interrogare qualcosa che usa entrambi i contesti? Dire ... selezionare un sandwhich da mycontext che appartiene a un utente nel identitycontext? – mejobloggs