mam 3 tabele,Entity Framework dodanie rekordu w wiele do wielu tabeli mapowania
1) klienta (id, nazwisko, bla bla)
2) customergroups (GroupID, GroupName)
3) CustomerInGroups (CustomerId, GroupId)
using (var context = DataObjectFactory.CreateContext())
{
context.Customers.Add(entity);
context.SaveChanges();
return entity.Id;
}
Jak dodać rekord do CustomerInGroups? EntityFramework nie generuje takich jednostek do wielu-do-wielu tabel mapowania
Edit:
Obie kolumny identyfikator klienta i customergroups są ustawione na auto przyrostu.
Więc w moim stole CustomersGroup mam
Id Name
----------------------------
1 Normal
2 VIP
Próbowałem robić to jako jeden z plakatów zasugerował:
entity.CustomerGroups = new List<CustomerGroup>
{
new CustomerGroup {Id = 2 }
};
context.Customers.Add(entity);
context.SaveChanges();
return entity.Id;
Jednak, kiedy to zrobił, zamiast tworzyć rekord w tabela mapowania tak:
CustomerId GroupId
----------------------------
1 2
dostałem
CustomerInGroups
CustomerId GroupId
----------------------------
1 3
CustomerGroups
Id Name
----------------------------
1 Normal
2 VIP
3 NULL
To faktycznie utworzony kolejny wpis w moim stole customergroups, co nie jest to, co chcę
Czy struktura encji nie aktualizuje automatycznie tabeli łączenia podczas przypisywania klienta do grupy lub odwrotnie? Nie musisz tworzyć oddzielnej encji, jeśli join nie ma ładunku (tj. Join, czyli _własne_ klucze obce). – Daniel