14 votes

Problème de suppression d'objet dans Entity Framework

J'obtiens "L'objet ne peut être supprimé car il n'a pas été trouvé dans l'ObjectStateManager". pendant la suppression de l'objet.

Voici les codes ;

//first i am filling listview control.
 private void Form1_Load(object sender, EventArgs e)
    {
        FirebirdEntity asa = new FirebirdEntity();

        ObjectQuery<NEW_TABLE> sorgu = asa.NEW_TABLE;

        foreach (var item in sorgu)
        {
            ListViewItem list = new ListViewItem();
            list.Text = item.AD;
            list.SubItems.Add(item.SOYAD);
            list.Tag = item;
            listView1.Items.Add(list);

        }
//than getting New_table entity from listview's tag property.
 private void button3_Click(object sender, EventArgs e)
    {

            using (FirebirdEntity arama = new FirebirdEntity())
            {

               NEW_TABLE del = (NEW_TABLE)listView1.SelectedItems[0].Tag;
               arama.DeleteObject(del);
               arama.SaveChanges();

            }}

1voto

vbullinger Points 649

Le terrible hack dégoûtant que j'ai utilisé est le suivant :

var attachedObject = _repository.GetObjectByKey(detachedObject.EntityKey);

Ça marche pour beaucoup de ces problèmes. J'espérais trouver une solution plus élégante à ce problème en venant ici. Cela semble faire l'affaire.

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