ASP.NET MVC 4 con Entity Framework 5 e SimpleMembership integrati nel modello Repository e Unit Of Work

1

Ho un progetto ASP.NET MVC4 in cui vorrei utilizzare SimpleMembership. L'applicazione ha una tabella Persona che contiene informazioni rilevanti sugli utenti nel sistema.

Desidero un collegamento tra l'utente attualmente connesso e le informazioni sulla persona. Quindi ho creato una chiave esterna nella tabella Persona nella colonna UserId della tabella UserProfile (da SimpleMembership).

Uso Entity Framework 5 come ORM e ho implementato un repository generico per gestire i metodi CRUD e così via.

Ora sono a un punto in cui voglio implementare la creazione del profilo utente. La creazione consiste di 2 parti:

  • login: nome utente e password (da memorizzare nelle tabelle SimpleMembership)
  • informazioni personali (da memorizzare nella tabella Persona)

Per creare un utente, suppongo di dover:

  1. Salva le informazioni utente tramite SimpleMembership
  2. Salva le informazioni personali insieme a userId dal passaggio 1 al mio PersonRepository

Vorrei una specie di UserRepository in grado di salvare i dati SimpleMembership ma non so se è l'approccio giusto? C'è un approccio migliore?

    
posta user1632306 26.02.2013 - 20:24
fonte

2 risposte

2

Conservo sempre i repository quindi c'è una relazione uno a uno tra un repository e una tabella in un database. E i repository non sanno di altri repository. Se è necessario gestire le transazioni tra repository implementare un modello di progettazione dell'unità di lavoro e in alto di questo un modello di progettazione del servizio che gestisce la logica del dominio intorno alle transazioni.

Un'altra opzione è quella di modificare il profilo utente in SimpleMembership per contenere le informazioni aggiuntive presenti nella tabella Persona. UserProfile è stato progettato per essere personalizzato e puoi leggere sulla personalizzazione qui .

    
risposta data 26.02.2013 - 22:44
fonte
0

Potresti racchiudere questa funzionalità come servizio.

Nel servizio dovresti utilizzare sia l'API di SimpleMembership che il tuo codice di repository.

    
risposta data 26.02.2013 - 22:30
fonte

Leggi altre domande sui tag