7
votes

Créer une base de données d'adhésion MVC4

Je connais avec aspnet_regsql.exe pour créer une base de données d'adhésion (il produit 11 tables)

Toutefois, dans mon projet MVC4 VS2010 a créé une base de données d'adhésion avec seulement six tables (applications, adhésions, profils, rôles, utilisateurs et utilisateursinroles)

Comment puis-je créer une base de données avec ce schéma (nouveau?)?


2 commentaires

Vous demandez si vous pouvez créer une application pré-MVC4 à l'aide du nouveau schéma de DB à six table MVC4 / ASP.NET 4.5?


OK, les fournisseurs de MVC 4 ne sont pas identiques, MVC4 introduit de nouveaux fournisseurs - Nuget.org/packages/system.Web.Web.Providers. Merci pour votre aide


3 Réponses :


2
votes

Vous devez ajouter des arguments pour l'installation de fonctionnalités: http://msdn.microsoft.com/en-us/library/ms229862 (v = vs.80) .aspx

Vous pouvez exécuter ASPnet_regsql.exe sans aucun argument de ligne de commande pour exécuter un assistant qui vous dirigera via l'installation.

Quelles tables sont manquantes et quelles tables ont été créées?


4 commentaires

Tandis que c'est presque la bonne réponse (je viens de l'essayer à l'aide de l'option de ligne de commande pour créer uniquement six tables), VS2010 MVC4 crée des tables avec une structure légèrement différente (par exemple, il n'y a pas d'adhésion / mobilePin dans le schéma de DB MVC). Je pense qu'ils doivent l'avoir créé d'une autre manière ??


Je pense que vous devriez jeter un coup d'œil à cet article: ComputerersCride.com/blogs/blogpost?id=11


Super article merci, je comprends beaucoup plus maintenant. J'ai chargé les scripts mentionnés dans l'article (commun, adhésion et rôles) dans SQL Server Management Studio, mais les tables qu'elles produisent sont nommées aspnet_membership, c'est le problème, comme les tables produites par MVC4 lors de l'utilisation du modèle d'application Internet produisent des tables de production. Noms Adhésion, Rôles (sans la partie ASPnet_) MVC4 fait quelque chose de différent ...


OK, les fournisseurs ne sont pas identiques, MVC4 introduit de nouveaux fournisseurs - Nuget.org/packages/system.web .Providers



2
votes

aspnet_regsql.exe fait partie de l'architecture ASP.NET, pas de MVC.

Mon pari est que l'aperçu du développeur MVC4 est livré avec des scripts de schéma personnalisés dans sa structure de projet, ou qu'il a une version de prévisualisation de la nouvelle version ASP.NET 4.5 aspnet_regsql.exe installé. < / p>

Si le plus tard est vrai, vous pouvez peut-être l'utiliser pour créer une base de données et l'attacher à vos applications MVC3 (et antérieures). Les implications ici sont en raison des différences de schéma, vous auriez probablement besoin d'écrire vos propres fournisseurs.

Une autre option serait de créer la base de données avec votre modèle MVC4, de supprimer le projet et de coder une couche DA dans votre projet MVC3 qui utilise la base de données. Tout ce que vous devez saisir est la chaîne de connexion. Mais encore une fois, vous devriez faire rouler vos propres fournisseurs lorsque les anciens ne connaissaient pas le nouveau schéma de 6 table.


4 commentaires

Merci à un. Gardez-vous, mais ive piquait et a découvert que les fournisseurs sont en fait différents dans MVC4. Merci pour l'aide quand même


Je t'en prie. Et oui, ASP.NET 4.5 aura de nouveaux fournisseurs et un nouveau schéma de DB. Personnellement, je préfère rouler le mien au lieu d'utiliser toutes leurs affaires de membres. C'est comme un steak gras parfois. ;)


@LillyPop - Est-ce que je répondais assez bien à votre question?


Oui un battement, l'identifiant de pensée cochut mais venait de voter, Tis fait :-)



4
votes

Tout ce que vous avez à faire est:

changez votre web.config en point à la connexion que vous souhaitez P>

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


0 commentaires