Jak dodać obiekt zawierający obiekt do bazy db4o

0

Witam serdecznie
Napotkałem się na następujący problem
Tworzę drzewo genealogiczne w relacyjnej i obiektowej bazie danych
Problem dotyczy obiektowej db4o

Mam już w bazie obiekty klasy Osoba

Osoba
{
string Imie,
Osoba Matka
}

chcę dodać do bazy Osobę (dziecko) które za matkę będzie miało już istniejący obiekt w bazie
Dodając w takie sposób


db.Store(new Osoba() { Imie = "string", Matka = new Osoba() { Imie = "string2" }});

W bazie pojawi mi się utworzona osoba o imieniu string, oraz osoba o imieniu string2, która w bazie już jest, i będę miał dwie, sprawa się komplikuje gdy kilku dzieciom chcę przypisać tę samą matką.

Naturalnym jest, że dodaje się kolejna osoba, bo używam słowa twórczego "new"

Możliwe jest też rozwiązanie, że dodaje Nową osobę i matkę a starą matkę usuwam, i wtedy wszystko jest ok, ale jak tworze kilka osób z tą samą matką to istnieje ona tylko dla ostatnio dodanego dziecka a wcześniejsze już jej nie wykrywają.

Próbuje tak:

using (IObjectContainer db = Db4oFactory.OpenFile("bazka.db"))
            {

                IList<Osoba> osoby = db.Query<Osoba>(typeof(Osoba));

                Osoba osoba = new Osoba() { Imie = dataGridView1.SelectedCells[0].Value.ToString() };
                IObjectSet result = db.QueryByExample(osoba);


                foreach (Osoba item in result)
                {
                    
                    db.Store(new Osoba() { Imie = textBox1.Text, Matka =  ?????? });
                    db.Commit();
                }


co wpisać w miejsce pytajników , wtedy będę wiedział, czy też się replikuje.

Pozdrawiam i dziękuję za poświęcony czas.
lukee90

0

wystarczy w miejsce pytajników wpisać Item
Wczesniej miałem źle wyświetlanie i sądziłem, że ten sposób dodawania nie działa.

1 użytkowników online, w tym zalogowanych: 0, gości: 1