Dans mon application mvc asp.net, je reçois une erreur dans la fonction d'édition: dans un code donné
public ActionResult Edit(int id)
{
var res = (from r in objeEntities.DocumentationsSet.Include("DocStatus")
where r.textid == id select r)
.First();
}
Je reçois cette exception:
Source : System.Data.Entity
Stack Trace :
at System.Data.EntityClient.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand, CommandBehavior behavior)
at System.Data.Objects.Internal.ObjectQueryExecutionPlan.Execute[TResultType](ObjectContext
context, ObjectParameterCollection parameterValues)
at System.Data.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption)
at System.Data.Objects.ObjectQuery`1.System.Collections.Generic.IEnumerable.GetEnumerator()
at System.Linq.Enumerable.First[TSource](IEnumerable`1 source)
at System.Data.Objects.ELinq.ObjectQueryProvider.b__0[TResult](IEnumerable`1 sequence)
at System.Data.Objects.ELinq.ObjectQueryProvider.ExecuteSingle[TResult](IEnumerable`1 query, Expression queryRoot)
at System.Data.Objects.ELinq.ObjectQueryProvider.System.Linq.IQueryProvider.Execute[S](Expression expression)
at System.Linq.Queryable.First[TSource](IQueryable`1 source)
at admin.com.Controllers.DocsGridController.Edit(Int32 id) in c:\Data\FinalCode\AC015\acomMVCSourceCode\admincom\Controllers\DocsController.cs:line
307
Message : An error occurred while executing the command definition. See the inner exception for details.
Cette erreur est générée lorsque je me connecte au serveur distant.
Quelle est cette erreur? Comment je le répare?
Cela signifie généralement que vos fichiers de schéma et de mappage ne sont pas synchronisés et qu'il existe une colonne renommée ou manquante.
Cela se produit lorsque vous spécifiez un nom différent pour le nom de la table du référentiel et celui de la base de données. Veuillez vérifier le nom de votre table avec la base de données et le référentiel.
Après avoir passé des heures, j'ai découvert que j'avais oublié la lettre 's'
dans le nom de la table
C'était [Table("Employee")]
au lieu de [Table("Employees")]
La requête réelle ne renvoie-t-elle aucun résultat? First()
échouera s'il n'y a aucun résultat.
Dans mon cas, j'ai bousillé la propriété connectionString
dans un profil de publication en essayant d'accéder à la mauvaise base de données (Initial Catalog
). Entity Framework se plaint alors que les entités ne correspondent pas à la base de données, et à juste titre.
J'ai eu une situation similaire avec l'erreur «Une erreur s'est produite lors de l'exécution de la définition de la commande». J'ai eu des vues qui étaient extraites d'une autre base de données qui utilisait la sécurité actuelle des utilisateurs. La deuxième base de données n'autorisait pas la connexion de l'utilisateur de la première base, ce qui entraînait ce problème. J'ai ajouté la connexion à la base de données au serveur auquel il tentait d'accéder depuis le serveur d'origine et le problème a été résolu. Vérifiez vos vues et voyez s’il existe des dbs liés dont la sécurité est différente de celle de la base de données à laquelle vous vous connectez à l’origine.
Je viens de rencontrer ce problème et c'est parce que j'avais mis à jour une vue de ma base de données et non actualisé le schéma dans mon mappage.
Examinez l'exception interne et découvrez quel objet peut être à l'origine du problème. Vous avez peut-être changé de nom.