Collections and arrays don't have a special behavior in db4o. When you delete a collection, the collection-members are not deleted. The collection and objects are two independent objects for db4o.
To remove object from a collection you can simple use the regular collection-operations and then store that collection.
PilotGroup group = FindGroup(container); Pilot pilot = group.Pilots[0]; group.Pilots.Remove(pilot); container.Store(group.Pilots); AssertEquals(3, AllPilots(container).Count); AssertEquals(2, group.Pilots.Count);
Dim group As PilotGroup = FindGroup(container) Dim pilot As Pilot = group.Pilots(0) group.Pilots.Remove(pilot) container.Store(group.Pilots) AssertEquals(3, AllPilots(container).Count) AssertEquals(2, group.Pilots.Count)
If you want to delete a collection-member, remove it and then delete it.
PilotGroup group = FindGroup(container); Pilot pilot = group.Pilots[0]; group.Pilots.Remove(pilot); container.Store(group.Pilots); container.Delete(pilot); AssertEquals(2, AllPilots(container).Count); AssertEquals(2, group.Pilots.Count);
Dim group As PilotGroup = FindGroup(container) Dim pilot As Pilot = group.Pilots(0) group.Pilots.Remove(pilot) container.Store(group.Pilots) container.Delete(pilot) AssertEquals(2, AllPilots(container).Count) AssertEquals(2, group.Pilots.Count)