Entity Framework 4 Удалить объект из коллекции объектов

У меня есть «Request» Entity с отношением 1 … * к объекту RequestProperty. Итак, в запросе есть коллекция объектов RequestProperty. Когда я обновляю «запрос», я хочу удалить все элементы в EntityCollection RequestProperty и добавить новые элементы из объекта входящего домена. Когда я Request.Properties коллекцию Request.Properties и вызываю удаление или объект DeleteObject в элементе, перечисление терпит неудачу, потому что коллекция была изменена.

На данный момент я делаю это:

 while (true) { if (newRequest.Properties.Count > 0) context.RequestPropertySet.DeleteObject(newRequest.Properties.First()); else break; } 

Поскольку это не очень «круто», я думал, что должен быть другой способ опорожнить коллекцию отношений. Спасибо за ваши мысли.

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

Если вы определили идентифицирующее отношение, вы сможете вызвать только Clear on collection, как описано в @Craig. Идентификация отношения – это особое отношение, где первичный ключ зависимого объекта содержит внешний ключ родительского объекта.

Пример модели EF

В примере показан объект Order и OrderItem с внешним ключом, идентифицирующим связь между ними. Первичный ключ OrderItem состоит из уникального Id и OrderId который является таблицей FK для Order . В этой конфигурации вам не нужно выполнять итерацию через OrderItem s и удалять каждый элемент отдельно. Простое удаление OrderItem из коллекции будет выполняться как удаление в базе данных, а очистка коллекции удалит все связанные OrderItem s в базе данных.

Используйте метод Clear() :

 newRequest.Properties.Clear(); 
  • В чем разница между .ToList (), .AsEnumerable (), AsQueryable ()?
  • Использование MySql с Entity Framework 4 и Code-First Development CTP
  • Использование Entity Framework с частной компактной установкой SQL Compact
  • Чтение метаданных внешнего ключа программным путем с помощью Entity Framework 4
  • Обнаружено, что
  • Entity Framework / SQL2008 - Как автоматически обновлять поля LastModified для объектов?
  • Указанное именованное соединение либо не находится в конфигурации, не предназначено для использования с поставщиком EntityClient, либо недействительно
  • Сравнение с регистром LINQ to Entities
  • Использование System.ComponentModel.DataAnnotations с Entity Framework 4.0
  • Есть ли в Entity Framework 4 Code First поддержка генераторов идентификаторов, таких как NHibernate?
  • Возможно ли по умолчанию использовать поле DateTime для GETDATE () с миграциями Entity Framework?
  • Interesting Posts

    В чем разница между жесткими ссылками NTFS и перегородками каталогов?

    ViewPager OnItemClickListener

    Убить призрак при подключении к freenode в xchat?

    clojure.java.jdbc ленивый запрос

    Как продемонстрировать проблемы многопоточности видимости java?

    Как определить, имеет ли сетевой коммутатор достаточную пропускную способность для поддержки передачи ПК на ПК одновременно с доступом в Интернет?

    Каталог проекта Visual Studio 2015 Database Project содержит файл с расширением jfm

    Почему Java позволяет повысить видимость защищенных методов в дочернем classе?

    Angularjs ui-router абстрактное состояние с разрешением

    Visual Studio 2010 говорит, что сбой сборки без ошибок после изменения исходного файла

    Пример SpannableString с изображением

    Запуск программного обеспечения на Linux через Wine

    Хорошие инструменты для создания анализатора / анализатора C / C ++

    Как изменить папку запуска Jupyter

    Как пропустить HashMap в JSP?

    Давайте будем гением компьютера.