2012-01-25 9 views
7

Estoy familiarizado con aspnet_regsql.exe para crear una base de datos de miembros (que produce 11 mesas)Crear MVC4 de miembro de base de datos

Sin embargo, en mi proyecto MVC4 VS2010 creado una base de afiliación con sólo seis mesas (aplicaciones, Pertenencia, perfiles, Roles, usuarios & UsersInRoles)

¿Cómo puedo crear una base de datos con este (nuevo?) Esquema?

+0

¿Está preguntando si puede crear una aplicación previa a MVC4 utilizando el nuevo esquema DB de seis tablas MVC4/ASP.Net 4.5? –

+1

Bien, los proveedores de MVC 4 NO son lo mismo, MVC4 presenta nuevos proveedores: nuget.org/packages/System.Web.Providers. Gracias por toda la ayuda – LenPopLilly

Respuesta

2

aspnet_regsql.exe es una parte de la arquitectura ASP.Net, no MVC.

Mi apuesta es que MVC4 Developer Preview viene con algunos scripts de esquema personalizados en su estructura de proyecto, o que tiene una versión de vista previa de la nueva versión de ASP.Net 4.5 aspnet_regsql.exe instalada.

Si lo último es cierto, quizás podría usarlo para crear una base de datos y vincularla a sus aplicaciones MVC3 (y anteriores). Las implicaciones aquí son debido a las diferencias de esquema, es probable que necesite escribir sus propios proveedores.

Otra opción sería crear la base de datos con su plantilla MVC4, eliminar el proyecto y codificar una capa DA en su proyecto MVC3 que utiliza la base de datos. Todo lo que necesitarías tomar es la cadena de conexión. Pero, una vez más, tendría que hacer rodar sus propios proveedores ya que los antiguos no conocerían el nuevo esquema de 6 tablas.

+2

Gracias uno .beat pero he estado hurgando y descubrí que los proveedores son de hecho diferentes en MVC4. Gracias por la ayuda de todos modos – LenPopLilly

+1

De nada. Y sí, ASP.Net 4.5 tendrá nuevos proveedores y un nuevo esquema db. Personalmente, prefiero lanzar el mío en lugar de usar todos sus elementos de membresía. Es como un filete graso a veces. ;) –

+0

@LillyPop - ¿Respondí tu pregunta lo suficientemente bien? –

2

hay que añadir algunos argumentos para las características de la instalación: http://msdn.microsoft.com/en-us/library/ms229862(v=vs.80).aspx

Puede ejecutar Aspnet_regsql.exe sin argumentos de línea de comandos para ejecutar un asistente que le guiará a través de la instalación.

¿Qué tablas faltan y qué tablas se crearon?

+0

Si bien esta es casi la respuesta correcta (lo intenté utilizando la opción de línea de comando para crear solo las mismas seis tablas), VS2010 MVC4 está creando tablas con una estructura ligeramente diferente (por ejemplo, no hay membresías/MobilePIN en mvc db schema) ¿Así que estoy pensando que deben haberlo creado de otra manera? – LenPopLilly

+0

Creo que deberías echarle un vistazo a este artículo: http://computerscribe.com/blogs/blogPost?id=11 –

+0

Un gran artículo gracias, ahora entiendo mucho más.Cargué los scipts mencionados en el artículo (Common, Membership & Roles) en SQL Server Management Studio pero las tablas que producen se llaman aspnet_Membership, este es el problema, ya que las tablas producidas por MVC4 cuando usa la plantilla de la aplicación de Internet producen tablas nombres Membresía, Roles (sin la parte aspnet_) MVC4 está haciendo algo diferente ... – LenPopLilly

4

Todo lo que necesita hacer es:

cambio de su web.config para que apunte a la conexión que le gustaría

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

Compruebe Filtros \ InitializeSimpleMembershipAttribute.cs

Línea 41 debe decir:

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

Observe que autoCreateTables está configurado t o true y se establece el nombre de la conexión que configuró en web.config.

Ahora cuando un usuario se registra buscará en la base de datos que configuró. Si las tablas aún no existen, se crearán.

+0

¡¡¡Excelente !!! Esto es lo que todos quieren – iamCR

Cuestiones relacionadas