171 votes

La valeur ne peut pas être nulle. Nom du paramètre : source

C'est probablement le plus gros problème de perte de temps que j'ai passé des heures à résoudre depuis longtemps.

var db = new hublisherEntities();
establishment_brands est = new establishment_brands();

est.brand_id = 1;
est.establishment_id = 1;
est.price = collection["price"];
est.size = collection["size"];

db.establishment_brands.Add(est);
db.SaveChanges();

Cela me donne une erreur de

La valeur ne peut pas être nulle. Nom du paramètre : source

le suivi de pile de

ArgumentNullException : Value cannot be null [Nom du paramètre : source]. System.Linq.Enumerable.Any(IEnumerable 1 source, Func 2 prédicat) +4083335 System.Data.Entity.Internal.InternalContext.WrapUpdateException(UpdateException updateException) +87
System.Data.Entity.Internal.InternalContext.SaveChanges() +193
System.Data.Entity.Internal.LazyInternalContext.SaveChanges() +33
System.Data.Entity.DbContext.SaveChanges() +20 ... ...

Je veux juste ajouter une entité à la table. L'ORM est EF.

1voto

cunderpants Points 11

Cela peut être aussi bête que dans mon cas où savechanges faisait une erreur parce que la base de données n'avait pas de clés étrangères et que des associations avaient été ajoutées aux tables GED. J'ai ajouté des clés étrangères dans la base de données et régénéré la GED pour corriger le problème.

Les erreurs que je voyais sont les suivantes : Cas 1 -> lors de l'utilisation de DBContext pour EDM Message=Value cannot be null. Nom du paramètre : source at System.Linq.Enumerable.Any[TSource](IEnumerable 1 source, Func 2 prédicat)

Cas 2 -> lors de l'utilisation d'ObjectContext pour la GED Message=Incapable de mettre à jour l'EntitySet 'Contact' car il possède une DefiningQuery et aucun élément n'existe dans l'élément pour supporter l'opération actuelle.

(Je voulais juste le dire au cas où cela aiderait quelqu'un).

1voto

Dans MVC, l'écran de visualisation appelle une méthode qui se trouve dans Controller ou Repository.cs et assigne la valeur de retour à un contrôle dans CSHTML, mais cette méthode n'est pas implémentée dans .cs/controller, alors CSHTML lèvera l'exception du paramètre NULL.

1voto

kirsten g Points 959

J'ai obtenu cette erreur lorsque j'avais un Type invalide pour une propriété d'entité.

public Type ObjectType {get;set;}

Lorsque j'ai supprimé la propriété, l'erreur a cessé de se produire.

0voto

Franco Points 41

Si cette erreur survient lorsque vous essayez de déployer le projet, assurez-vous que votre compte d'utilisateur dispose de suffisamment de permissions pour le faire.

-3voto

Jarin Farhad Points 11

Prenez une ligne dans la base de données et rendez toutes les colonnes nulles dans cette ligne comme ceci "NULL". Maintenant, passez cette valeur NULL en utilisant try catch ou if else.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X