Vousmanager ne contient pas de ObjectStateEntry avec une référence à un objet de type
Je suis en utilisant EISK de l'Employé (Info Kit de démarrage) pour développer une application. Mon entité diagramme ressemble à ceci j'essaie de mettre à jour le tableau d'application par l'intermédiaire de ce code.
int apId = Convert.ToInt32(Request.QueryString["ApplicationID"]);
ApplicationBLL objGetApplication = new ApplicationBLL();
Appdec.YEP.BusinessEntities.Application objApplication =
objGetApplication.GetApplicationByApplicationID(apId);
objApplication.Status = (ddlStatus.SelectedValue == "0" ? false : true);
new ApplicationBLL(new Appdec.YEP.DataAccessLayer.DatabaseContext()).UpdateApplication(objApplication);
maintenant la méthode de mise à jour à l'affaire de logique est
[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Update, true)]
public void UpdateApplication(Application updatedApplication)
{
//Validate Parameters
if (updatedApplication == null)
throw (new ArgumentNullException("updatedApplication"));
//Validate Primary key value
if (updatedApplication.ApplicationID.IsInvalidKey())
BusinessLayerHelper.ThrowErrorForInvalidDataKey("ApplicationID");
//Apply business rules
OnApplicationSaving(updatedApplication);
OnApplicationUpdating(updatedApplication);
//attaching and making ready for parsistance
if (updatedApplication.EntityState == EntityState.Detached)
_DatabaseContext.Applications.Attach(updatedApplication);
_DatabaseContext.ObjectStateManager.ChangeObjectState(updatedApplication, System.Data.EntityState.Modified);//this line throws the error
//ObjectStateManager does not contain an ObjectStateEntry with a reference to an object of type
int numberOfAffectedRows = _DatabaseContext.SaveChanges();
if (numberOfAffectedRows == 0)
throw new DataNotUpdatedException("No application updated!");
//Apply business workflow
OnApplicationUpdated(updatedApplication);
OnApplicationSaved(updatedApplication);
}
Quelqu'un peut-il me dire comment corriger cette erreur et de mettre à jour les tables.
la même erreur ocurres quand j'essaie de mettre à jour d'autres tables aussi. L'insert fonctionne très bien.
En espérant ne pas vous déranger. En Ce Qui Concerne Meilleur.
quelqu'un ? S'il vous plaît...
supprimer si (updatedApplication.EntityState == EntityState.Détaché) et fixez toujours
il m'a fait cette erreur Une entité objet ne peut pas être référencé par plusieurs instances de IEntityChangeTracker.
semble comme personne n'est là pour m'aider 🙁
donc sa fait déjà partie d'un contexte,et u devrait mettre à jour que caontext,pouvez-vous utiliser _DatabaseContext.Des Applications.AddObject(updatedApplication); à la place
supprimer si (updatedApplication.EntityState == EntityState.Détaché) et fixez toujours
il m'a fait cette erreur Une entité objet ne peut pas être référencé par plusieurs instances de IEntityChangeTracker.
semble comme personne n'est là pour m'aider 🙁
donc sa fait déjà partie d'un contexte,et u devrait mettre à jour que caontext,pouvez-vous utiliser _DatabaseContext.Des Applications.AddObject(updatedApplication); à la place
OriginalL'auteur ademg | 2011-06-21
Vous devez vous connecter pour publier un commentaire.
De sorte qu'il appartient déjà à un contexte,vous devez mettre à jour ce contexte.
Il ne peut pas être attaché à ce nouveau contexte,
Vous pouvez créer une nouvelle instance de updatedApplication et copier toutes les propriétés de updatedApplication à cette nouvelle et fixer une nouvelle entité pour l'application.
Également modifier
à
OriginalL'auteur DeveloperX