Entity Framework, UserManager

0

Witam. Mam następujący problem. Tworzę w formularzu użytkownika podaj login email itp. Dodatkowo muszę wybrać z listy rozwijanej pozycję Firma która jest w relacji wiele do jednego z uzytkownikiem (czyli jedna firma może mieć wielu użytkowników). Po przesłaniu danych formularza do akcji pobieram sobie za pomocą context.Firma.find(id_firmy) cały obiekt Firma. I przypisuje go do pola użytkownik.Firma. Oczywiście inne dane wypełnia i zapisuję użytkownika typu ApplicationUser za pomocą polecenia UserManager.Create(user, password);
I tu wszystko działa. Problem jest natomiast z relacją do tabeli Firma. Ponieważ w ten sposób tworzy mi się kolejny rekord w tabeli firma. Znalazem w necie że jest to kwestia dbcontextu i obszedłem to tworząc już po poleceniu UserManager.Create(_user, password); usera poprzez context.users.find(_user.id). następnie przypisuje mu Firmę znalezioną wcześniej. I robię context.savechange(). I wtedy już nie duplikuje mi rekordu firmy. Działam w ramach jednego kontekstu. Ale czy można to zrobić przed poleceniem UserManager.Create ? Czyli przekazać do tego polecenia usera z już przypisaną firmą ale żeby po wstawieniu nie duplikowała się ona ?

0

Tworząc nowego użytkownika, powinieneś przypisać mu konkretną firmę wykorzystując klucz obcy User.FirmaID. Wykorzystywanie do tego celu propercji nawigacyjnej User.Firma to nie jest dobry pomysł.

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