/ / Aktualizacja problemu z NHibernate - asp.net-mvc, nhibernate, fluent-nhibernate, nhibernate-mapping

Aktualizacja problemu z NHibernate - asp.net-mvc, nhibernate, fluent-nhibernate, nhibernate-mapping

Mam tabele Customer, CustomerGroups, Groups. Klient ma 1: n w grupach klientów, a grupy 1: n w grupach klientów. Na ekranie tworzenia klienta użytkownik może wybrać informacje o grupach istniejących klientów. Więc kiedy tworzę nowego klienta, odbieram grupy od istniejącego klienta i dodaje je

///
Customer cust = new Customer();
foreach(var item in getothercustomergroups())
cust.groups.add(item);
commit

Ten kod generuje instrukcję aktualizacji iaktualizowanie tabeli grup klientów nowo dodanym klientem, zamiast wstawiania nowych rekordów z nowymi klientami. Z tego względu wszystkie grupy z prev. klient zniknął. Czy ktoś mógłby wyjaśnić to zachowanie.

Odpowiedzi:

0 dla odpowiedzi № 1

Z twojego opisu, zgadujęgetcustomergroups dostał grupy klientów od istniejącego klienta przez NHibernate. Jeśli tak, usługa NHibernate powiązała każdy element pętli foreach z istniejącym klientem, więc po dodaniu elementu do nowego klienta nowy klient przejmuje jego własność.

Możesz tego uniknąć, klonując przedmiot. Widzieć Jak skopiować obiekt za pomocą NHibernate