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

Entity Framework Discussion :

IDENTITY INSERT On et Off


Sujet :

Entity Framework

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2017
    Messages : 2
    Par défaut IDENTITY INSERT On et Off
    Bonjour,

    Je suis debutant en Entity Framework. Je suis un tutorial ou je cherche simplement a ajouter une entree dans la base de donnees.
    J ai installe SQL EXPRESS, VStudio.

    customer controller :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    using (var Dal = new CustomerDal())
                    {
                        Customer myCustomer = new Customer { CustomerCode = "1234" , CustomerName ="BRIIICE"};
     
                        Dal.Customer.Add(myCustomer);
                        Dal.SaveChanges();
                    }

    customer (Model) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    public class Customer
        {
            public Customer()
            {
            }
     
            [Key]
            [Required]
        //    [DatabaseGenerated(DatabaseGeneratedOption.None)]
            public string CustomerCode { get; set; }
     
            [Required]
            [StringLength(10)]
            [RegularExpression("^[A-Z]{7,7}$")]
        //    [DatabaseGenerated(DatabaseGeneratedOption.None)]
            public string CustomerName { get; set; }
        }
    DB Context :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     public class CustomerDal : DbContext 
        {
            protected override void OnModelCreating(DbModelBuilder modelBuilder)
            {
                base.OnModelCreating(modelBuilder);
                modelBuilder.Entity<Customer>().ToTable("tblCustomer");
            }
     
            public CustomerDal(): base()
            {
     
            }
     
            //  [DatabaseGenerated(DatabaseGeneratedOption.None)]
            public DbSet<Customer> Customer { get; set; }
     
        }
    J ai l erreur suivante a l execution en debug mode a l etape SaveChanges:

    "Cannot insert explicit value for identity column in table 'tblCustomer' when IDENTITY_INSERT is set to OFF"

    Et quand j essaie de changer la valeur d IDENTITY_INSERT j ai le message suivant :

    "Table 'tblCustomer' does not have the identity property. Cannot perform SET operation."

    Je ne comprends rien, je suis bloque dessus depuis plusieurs jours. Je ne crois pas avoir de colonne identity.
    Pourtant il y a bien un dialogue entre EF et la BdD car lorsque je stoppe celle ci, le message d erreur est different.

  2. #2
    Membre émérite Avatar de Momoth
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2013
    Messages
    318
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2013
    Messages : 318
    Par défaut
    Bonjour,

    Par défaut le SET_IDENTITY est à false, d'ou ton erreur quand tu essayes de lui indiquer un identifiant.

    Peut tu nous montrer ta requête SQL de SET_IDENTITY qui foire ?

  3. #3
    Nouveau candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2017
    Messages : 2
    Par défaut
    sur la requete

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SET IDENTITY_INSERT tblCustomer ON
    Il repond :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Table 'tblCustomer' does not have the identity property. Cannot perform SET operation.
    Je suis vraiment bloque que dois je faire ?

  4. #4
    Membre émérite Avatar de Momoth
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2013
    Messages
    318
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2013
    Messages : 318
    Par défaut
    Peut tu nous montrer comment tu crée ta table (code first ou script sql) ?

    As tu définis une clé primaire pour ta table ?

  5. #5
    Membre émérite
    Homme Profil pro
    Architecte technique
    Inscrit en
    Septembre 2005
    Messages
    462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 462
    Par défaut
    Salut,

    L'erreur est normale car tu as bien une clé primaire "CustomerCode" mais n'a pas de champs "Identity".

    On ne peut appliquer "Identity" seulement a des colonnes de types : decimal, int, numeric, smallint, bigint, tinyint.

    Un SGBD sait générer des clés unique il faut donc le laisser faire son travail.

Discussions similaires

  1. Capter les erreurs d'insertion avec avertissements à OFF
    Par guidav dans le forum VBA Access
    Réponses: 2
    Dernier message: 01/04/2008, 16h43
  2. Identity Insert & auto_increment
    Par Yoltie dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 31/01/2008, 16h52
  3. Insertion impossible car identity insert défini à off
    Par dubidon dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 05/06/2007, 15h34
  4. Réponses: 9
    Dernier message: 07/09/2004, 11h12
  5. Insert ds une column identity
    Par Trahwn dans le forum MS SQL Server
    Réponses: 11
    Dernier message: 06/10/2003, 15h14

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