none
Rejet d'un ajout RRS feed

  • Question

  • Bonjour tout le monde,

    Je m'étonne de ne pas pouvoir ajouter un enregistrement dans une table avec ceci :

    using (SampleDBEntities dataContext = new SampleDBEntities())
    {
    	Emp.Id = dataContext.Employees.Count() + 1;
    	dataContext.Employees.Add(Emp);
    	dataContext.SaveChanges();
    	return "Employee Updated";
    }

    Sur SaveChanges j'ai "SqlException : Cannot insert the value NULL into column 'Id', ".

    Sur la ligne juste avant, avec le Add, avec un point d'arrêt j'ai vu que Emp.Id vaut 2.

    Le premier enregistrement a été inséré avec l'explorateur de serveurs.

    J'ai fini par autoriser une valeur nulle pour le champ Id et ça n'a pas solutionné le problème.

    Pas plus que d'ajouter ceci à la définition de la table :

    GO
    
    CREATE TRIGGER [dbo].[Trigger_Employee]
        ON [dbo].[Employee]
        FOR INSERT
        AS
        BEGIN
    		UPDATE i set Id = MAX(Id) + 1 FROM inserted i;
        END

    ou de mettre 0 comme valeur par défaut au champ Id.

    J'ai essayé id et Id, à tout hasard, mais non c'est bien avec une majuscule.

    La base est un fichier de base de données, créé avec SQL Server 2014 (il ne faut pas trop se mélanger les pinceaux avec la chaîne de connexion Entity Framework).

    Visual Studio est la version 2017 Community.

    Le système est Windows 10, 64 bits, 1803, Microsoft Windows [version 10.0.17134.345]

    environ 10 Go de libres sur le disque système (les données sont enregistrées sur une autre partition)



    • Modifié Gloops lundi 5 novembre 2018 20:28
    lundi 5 novembre 2018 19:35

Réponses

  • Désolé, j'ai fait plusieurs modifications ailleurs dans le programme et à présent ça marche, pour autant je serais incapable d'expliquer ce qui a bloqué.

    • Marqué comme réponse Gloops mardi 6 novembre 2018 09:59
    mardi 6 novembre 2018 09:59