IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET MVC Discussion :

MVC-EF-SQLServer : create database impossible


Sujet :

ASP.NET MVC

  1. #1
    Membre éprouvé Avatar de kheironn
    Homme Profil pro
    Chef de projets technique C# / MVC / .Net
    Inscrit en
    Février 2007
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets technique C# / MVC / .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2007
    Messages : 822
    Points : 1 108
    Points
    1 108
    Par défaut MVC-EF-SQLServer : create database impossible
    Bonjour,
    Ayant décidé de ne pas trop perdre de compétence, j'ai décidé de suivre ce tuto (ici la page 4 où il est question de connexion à la db).
    Je ne voulais pas utiliser SSce4.0 donc j'utilise SS2008. J'ai créé ma base vide, avec authentification windows (ce qui me va très bien pour le tuto). Je génère la chaine de connexion dans les propriétés du projet.

    Lorsque j'exécute la suite du tuto je récupère un message me disant que je ne peux pas créer de DB sur la base 'master'. Le message est clair, mais je ne comprends pas pourquoi il veut taper sur cette base et créer une base, alors qu'elle existe.

    Je pense que le problème est lié à une mauvaise utilisation de EF ou un mauvais paramétrage de ma base/chaine de connexion.

    Si quelqu'un voulait bien éclairer ma lanterne.
    merci d'avance.
    En informatique, le problème se situe toujours entre le clavier et l'écran !
    Il y a deux chemins entre le clavier et l'écran : Par l'UC et par l'utilisateur.

  2. #2
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 236
    Points : 133
    Points
    133
    Par défaut
    Bonjour,
    Ce tuto traite d'Entity Framework en mode "Code first" donc on écrit le code du model et ça crée la base lors de la première requête CRUD. Il faut forcement que le login dans ta chaine de connexion ait les droits database creator sinon ça ne marchera pas.

    Si tu a déjà crée ta base et tes tables, tu dois utiliser Entity Framework en mode Database First. Ça va te créer le modèle automatiquement.

    A voir quelle approche tu veux.

    Sinon si au démarrage le prog cherche a créer la base alors qu'elle existe déjà c'est qu'il doit y avoir un problème dans ta chaine de connexion si tu peux la poster pour voir au cas où.
    La Solution AGILE de Cartographie et d'Urbanisation des Systèmes d'Information éditée et développée par la société AB+ SOFTWARE
    https://www.abplussoftware.fr

  3. #3
    Membre éprouvé Avatar de kheironn
    Homme Profil pro
    Chef de projets technique C# / MVC / .Net
    Inscrit en
    Février 2007
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets technique C# / MVC / .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2007
    Messages : 822
    Points : 1 108
    Points
    1 108
    Par défaut
    Ok, je me pencherai là dessus quand la vague de travail sera passée. merci du renseignement.
    Je ferme en attendant de pouvoir y revenir.

    Au passage, comment tu fais pour choisir data first ou pas ?
    En informatique, le problème se situe toujours entre le clavier et l'écran !
    Il y a deux chemins entre le clavier et l'écran : Par l'UC et par l'utilisateur.

  4. #4
    Membre éprouvé Avatar de kheironn
    Homme Profil pro
    Chef de projets technique C# / MVC / .Net
    Inscrit en
    Février 2007
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets technique C# / MVC / .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2007
    Messages : 822
    Points : 1 108
    Points
    1 108
    Par défaut
    Voilà un peu de temps a y consacrer...
    Donc j'ai toujours ce message :
    Autorisation CREATE DATABASE refusée dans la base de données 'master'
    .
    la cnx est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <add name="TestProject.MvcMovies.Properties.Settings.MoviesDbContext" connectionString="Data source=kheironn-nb;Initial Catalog=MvcMovies;Persist Security Info=True;User ID=MvcMoviesApp;Password=MvcMoviesApp" providerName="System.Data.SqlClient">
    j'ai créé le compte en lui mettant les droits dbcreator... et la base par défaut qui va bien ça ne marchait pas.
    j'ai donc créé la base vide, toujours le même message.
    J'ai mappé l'utilisateur sqlserver sur la base en lui donnant le schema par defaut db_owner...
    rien y fait !

    Qu'est-ce qu'il va me foutre dans cette base master ???
    En informatique, le problème se situe toujours entre le clavier et l'écran !
    Il y a deux chemins entre le clavier et l'écran : Par l'UC et par l'utilisateur.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par kheironn Voir le message
    Qu'est-ce qu'il va me foutre dans cette base master ???
    Puet-être que c'est lié et peut-être que pas. Mais à ce que sache le nom de ta classe représentant ton contexte devrait être identique à celle de ta chaîne de connexion. Si cela ne marche toujours pas alors tu devras ajouter en plus l'espace de nom.

  6. #6
    Membre éprouvé Avatar de kheironn
    Homme Profil pro
    Chef de projets technique C# / MVC / .Net
    Inscrit en
    Février 2007
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets technique C# / MVC / .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2007
    Messages : 822
    Points : 1 108
    Points
    1 108
    Par défaut
    C'était bien ça ! ma cnx s'appelait : MoviesDbContext et ma classe MovieDbContext !!!

    Merci bien !

    J'en profite pour demander : comment tu fais DB first ou code first ?
    En informatique, le problème se situe toujours entre le clavier et l'écran !
    Il y a deux chemins entre le clavier et l'écran : Par l'UC et par l'utilisateur.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par kheironn Voir le message
    C'était bien ça ! ma cnx s'appelait : MoviesDbContext et ma classe MovieDbContext !!!
    Merci bien !
    Je me souviens que ça m'a fait perdre 2h pour un petit truc (de rien du tout)

    Citation Envoyé par kheironn Voir le message
    J'en profite pour demander : comment tu fais DB first ou code first ?
    Entity Framework propose 3 approches :
    • l'approche Database First : implique que ta base de données est déjà en place. Elle est déjà créée par toi-même ou par un DBA. Le designer VS te permet de générer un modèle EDMX à partir d'une base de données existante.
    • l'approche Model First : implique que tu te crées un modèle EDMX vide et tu conçois toi-même tes entités. Une fois terminée, tu peux générer la base de données en faisant click droit puis générer la base de données.
    • l'approche Code First : c'est comme l'approche Model First sauf que là tu n'as pas besoin d'un modèle EDMX pour créer tes classes mais tu les codes manuellement. Une fois tout le codage des classes terminé alors tu peux l'utiliser pour générer ta base de données si elle n'existe pas. C'est ce que tu fais actuellement si je ne me trompe pas.

  8. #8
    Membre éprouvé Avatar de kheironn
    Homme Profil pro
    Chef de projets technique C# / MVC / .Net
    Inscrit en
    Février 2007
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets technique C# / MVC / .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2007
    Messages : 822
    Points : 1 108
    Points
    1 108
    Par défaut
    Citation Envoyé par h2s84 Voir le message
    Je me souviens que ça m'a fait perdre 2h pour un petit truc (de rien du tout)
    Oui en plus c'est vraiment le genre de merde qui te pourrissent ! Tout à l'air bien, sauf une petite faute de rien du tout !


    Citation Envoyé par h2s84 Voir le message
    Entity Framework propose 3 approches :
    • l'approche Code First : c'est comme l'approche Model First sauf que là tu n'as pas besoin d'un modèle EDMX pour créer tes classes mais tu les codes manuellement. Une fois tout le codage des classes terminé alors tu peux l'utiliser pour générer ta base de données si elle n'existe pas. C'est ce que tu fais actuellement si je ne me trompe pas.
    Oui, ça y ressemble, bon, je n'ai plus qu'à aller voir ce qu'est le EDMX pour compléter mes connaissances.

    Ok -> MSDN
    En informatique, le problème se situe toujours entre le clavier et l'écran !
    Il y a deux chemins entre le clavier et l'écran : Par l'UC et par l'utilisateur.

  9. #9
    Expert confirmé
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Points : 4 066
    Points
    4 066
    Par défaut
    Citation Envoyé par kheironn Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <add name="TestProject.MvcMovies.Properties.Settings.MoviesDbContext" connectionString="Data source=kheironn-nb;Initial Catalog=MvcMovies;Persist Security Info=True;User ID=MvcMoviesApp;Password=MvcMoviesApp" providerName="System.Data.SqlClient">
    Qu'est-ce qu'il va me foutre dans cette base master ???
    Bonjour,

    Las base master est tout simplement la base "système" sur SQL Server. C'est la base centrale du serveur qui va te permettre de créer d'autres bases.
    Pour Code First, la base est créée à la volée si elle n'existe pas. Il faut donc que ton user SQL MvcMoviesApp soit créé au niveau du serveur, avec le droit DbCreator. Par contre pas besoin de l'associer à la base master.
    Enfin, ta base ne doit pas exister la première fois, c'est Code First qui la créera.

    En espérant t'avoir aidé.

  10. #10
    Membre éprouvé Avatar de kheironn
    Homme Profil pro
    Chef de projets technique C# / MVC / .Net
    Inscrit en
    Février 2007
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets technique C# / MVC / .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2007
    Messages : 822
    Points : 1 108
    Points
    1 108
    Par défaut
    Merci.
    Je sais ce qu'est la base master.
    En fait, c'est plutôt le message d'erreur qui n'est pas très clair par rapport au problème rencontré.

    Mais, c'est résolu et compris...
    En informatique, le problème se situe toujours entre le clavier et l'écran !
    Il y a deux chemins entre le clavier et l'écran : Par l'UC et par l'utilisateur.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. SQLSERVER 2005 - CREATE DATABASE FOR ATTACH
    Par best94 dans le forum MS SQL Server
    Réponses: 12
    Dernier message: 08/04/2009, 16h27
  2. Réponses: 8
    Dernier message: 04/10/2005, 19h27
  3. [débutante] drop database impossible
    Par LineLe dans le forum MS SQL Server
    Réponses: 15
    Dernier message: 08/03/2005, 15h04
  4. ouverture database impossible
    Par jpapou dans le forum InterBase
    Réponses: 6
    Dernier message: 04/02/2005, 12h33
  5. CREATE DATABASE
    Par willowII dans le forum Débuter
    Réponses: 1
    Dernier message: 13/01/2005, 13h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo