2012-01-25 11 views
7

ho familiarità con aspnet_regsql.exe per creare un database di appartenenza (che produce 11 tavoli)Creare MVC4 appartenenza Database

Tuttavia, nel mio progetto MVC4 VS2010 ha creato un database di appartenenza con solo sei tavoli (Applicazioni, appartenenze, Profili, Ruoli, Utenti & UsersInRoles)

Come posso creare un database con questo (nuovo?) Schema?

+0

Stai chiedendo se è possibile creare un'applicazione pre-MVC4 utilizzando il nuovo schema DB a sei tabelle MVC4/ASP.Net 4.5? –

+1

Ok, i provider di MVC 4 NON sono uguali, MVC4 introduce nuovi provider - nuget.org/packages/System.Web.Providers. Grazie per tutto l'aiuto – LenPopLilly

risposta

2

aspnet_regsql.exe è una parte dell'architettura ASP.Net, non MVC.

La mia scommessa è che MVC4 Developer Preview viene fornito con alcuni script di schema personalizzati nella sua struttura di progetto, o che ha una versione di anteprima della nuova versione ASP.Net 4.5 aspnet_regsql.exe installata.

Se il successivo è vero, è possibile utilizzarlo per creare un database e collegarlo alle applicazioni MVC3 (e precedenti). Le implicazioni qui sono a causa delle differenze dello schema, probabilmente dovresti scrivere i tuoi provider.

Un'altra opzione potrebbe essere quella di creare il database con il modello MVC4, eliminare il progetto e codificare un livello DA nel progetto MVC3 che utilizza il database. Tutto ciò che ti serve è la stringa di connessione. Ma ancora una volta, dovresti eseguire il rollover dei tuoi provider poiché i vecchi non conoscono il nuovo schema a 6 tabelle.

+2

Grazie uno .beat ma Ive è stato curioso e ha scoperto che i provider sono in realtà diversi in MVC4. Grazie comunque per l'aiuto – LenPopLilly

+1

Prego. E sì, ASP.Net 4.5 avrà nuovi provider e nuovi schemi db. Personalmente, preferisco rotolare da solo invece di usare tutta la roba dei membri. A volte è come una bistecca grassa. ;) –

+0

@LillyPop - ho risposto abbastanza bene alla tua domanda? –

2

dovete aggiungere alcuni argomenti per le caratteristiche che installano: http://msdn.microsoft.com/en-us/library/ms229862(v=vs.80).aspx

È possibile eseguire Aspnet_regsql.exe senza argomenti della riga di comando per eseguire una procedura guidata che vi guiderà attraverso l'installazione.

Quali tabelle sono mancanti e quali tabelle sono state create?

+0

Anche se questa è quasi la risposta giusta (l'ho appena provato usando l'opzione della riga di comando per creare solo le stesse sei tabelle), VS2010 MVC4 sta creando tabelle con una struttura leggermente diversa (ad es. Non ci sono Memberships/MobilePIN in mb db schema) Quindi, sto pensando che devono averlo creato in un altro modo ?? – LenPopLilly

+0

Penso che dovresti dare un'occhiata a questo articolo: http://computerscribe.com/blogs/blogPost?id=11 –

+0

Grande articolo, grazie, capisco molto di più ora.Ho caricato gli scipts menzionati nell'articolo (Common, Membership & Roles) in SQL Server Management Studio ma le tabelle che producono sono denominate aspnet_Membership, questo è il problema, poiché le tabelle prodotte da MVC4 quando si utilizza il modello di app Internet producono tabelle nomi Membership, Ruoli (senza la parte aspnet_) MVC4 sta facendo qualcosa di diverso ... – LenPopLilly

4

Tutto quello che dovete fare è:

cambiamento web.config per puntare alla connessione che si vorrebbe

<add name="DefaultConnection" connectionString="uid=****;pwd=*****;server=(local);database=****" providerName="System.Data.SqlClient" /> 

Verificare Filters \ InitializeSimpleMembershipAttribute.cs

Linea 41 dovrebbe leggere:

WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", "UserName", autoCreateTables: true); 

Si noti che autoCreateTables è impostato t o true e viene impostato il nome della connessione impostata in web.config.

Ora, quando un utente si registra, esaminerà il database impostato. Se i tavoli non esistono ancora saranno creati.

+0

Eccellente !!! Questo è ciò che tutti vogliono – iamCR

Problemi correlati