Как я могу удалить все из List.EntitySet - PullRequest
0 голосов
/ 30 апреля 2019

Я пытаюсь удалить все элементы из Linq.EntitySet, но все, что я пробовал, просто удаляет элементы из списка, а не из EntitySet

В других вопросах я видел, что проблема заключалась в том, что элементыудалены из вновь созданного списка, а не из исходного списка, что именно и происходит в моем коде, но ни один из ответов не решил мою проблему.

Что я пробовал до сих пор:

Это удаляет элементы в списке siskevasiaEidous, но элементы все еще существуют в BisCurrent.SiskevasiesEidousBis

List<SiskevasiesEidousBis> siskevasiaEidous = 
                        BisCurrent.SiskevasiesEidousBis.Where(
                            p=> p.ArithmosEidous == Convert.ToInt32(BisCurrent.ArithmosEidous3_32.Value.ToString())).ToList();

Этот код показывает, например, что у меня есть 5 элементов в этом списке, и 2 будут удалены, но когда он запуститсяон ничего не делает со списком.

BisCurrent.SiskevasiesEidousBis.ToList().RemoveAll(a => a.ArithmosEidous == 4);

Один довольно многообещающий код, который я нашел, на самом деле заменяет тот же список без элементов, которые я хочу удалить

BisCurrent.SiskevasiesEidousBis = BisCurrent.SiskevasiesEidousBis.Where(a => a.ArithmosEidous != BisCurrent.ArithmosEidous3_32.Value);

Он дает мнеошибка:

Невозможно неявное преобразование типа System.Collections.Generic.Ienumerable в 'System.Data.Linq.EntitySetAn явный разговорна съёмках (тебе не хватает актеров?)

1 Ответ

0 голосов
/ 30 апреля 2019

Благодаря @jdweng я нашел решение своей проблемы. Единственный способ, который я нашел, который работает в моей программе, это: Сначала я удаляю все «ненужные» элементы, создавая новый Generic.List

List<SiskevasiesEidousBis> results = BisCurrent.SiskevasiesEidousBis.Where(a => a.ArithmosEidous != BisCurrent.ArithmosEidous3_32.Value).ToList();

Во-вторых, я создаю новый EntitySet

 EntitySet<SiskevasiesEidousBis> es = new EntitySet<SiskevasiesEidousBis>();

И, наконец, я заполняю EntitySet элементами и возвращаю EntitySet обратно в свой первоначальный список

es.AddRange(results);
BisCurrent.SiskevasiesEidousBis = es;

Я не знаю, есть ли более чистый код, но он работает просто отлично. Спасибо за вашу помощь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...