Возможно, вы сможете сделать это с помощью xpath. что-то вроде //tr[contains(@class, 'row') and position() mod 2 = 0]
может работать. Существуют другие вопросы SO, расширяющие подробности о том, как более точно сопоставлять классы.
Вам необходимо удалить ItemTypeItem. Невозможно просто удалить его из списка «Предметы», поскольку он не может существовать сам по себе, поскольку имеет необнуляемый внешний ключ, ссылающийся на ItemType (ItemTypeID).
Для удаления ItemTypeItem добавьте
context.Entry(itemTypeItem).State = EntityState.Deleted;
В структуре сущностей 6.0, если вы удалите сущность из основного набора контекста, она будет работать. Например, чтобы удалить инвестиционную сущность, вы должны сделать следующее:
context.Investments.Remove(entity);
context.SaveChanges();
Это отличается от попытки удалить сущность от ее родителя / владельца следующим образом:
bankAccount.Investments.Remove(entity);
context.SaveChanges();
Это приведет к тому, что отношения не могут быть изменены, исключение перечислено выше. Надеюсь, это поможет.
В объекте 6.0 существует различие между:
context.Investments.Remove(entity);
и
context.Entry(entity).State = EntityState.Deleted;
Когда включено использование первого и каскадного удаления, EF внутренне выполнит необходимые удаления дочернего элемента. коллекции. При использовании второй опции EF не будет обрабатывать необходимые удаления, но позволит вам выполнить повторное связывание / удаление этих дочерних объектов.
Эта проблема возникает из-за того, что мы пытаемся удалить родительскую таблицу, но данные дочерней таблицы присутствуют. Мы решаем проблему с помощью каскадного удаления.
В модели Create метод в классе dbcontext.
modelBuilder.Entity<Job>()
.HasMany<JobSportsMapping>(C => C.JobSportsMappings)
.WithRequired(C => C.Job)
.HasForeignKey(C => C.JobId).WillCascadeOnDelete(true);
modelBuilder.Entity<Sport>()
.HasMany<JobSportsMapping>(C => C.JobSportsMappings)
.WithRequired(C => C.Sport)
.HasForeignKey(C => C.SportId).WillCascadeOnDelete(true);
После этого в нашем вызове API
var JobList = Context.Job
.Include(x => x.JobSportsMappings) .ToList();
Context.Job.RemoveRange(JobList);
Context.SaveChanges();
опция каскадного удаления удаляет родительскую, а также родительскую дочернюю таблицу с помощью этого простого кода. Сделайте так, чтобы это было так просто.
Remove Range, который используется для удаления списка записей в базе данных. Спасибо