Поскольку это отношение внешнего ключа, ваш класс Logowanie
должен содержать свойство для IQueryable<uzytkownik>
, которое используется для правильного соотношения объектов один-ко-многим.В результате больше нет необходимости назначать внешний ключ вручную, это можно сделать с помощью иерархии объектов:
Logowanie newlog = new Logowanie()
{
Login = model.LoginModel.Użytkownik,
Haslo = model.LoginModel.Hasło,
konto = model.LoginModel.Konto
};
uzytkownik user = new uzytkownik()
{
imie = model.uzytkownikModle.imie,
nazwisko = model.uzytkownikModle.nazwisko,
pesel = model.uzytkownikModle.pesel,
nip = model.uzytkownikModle.nip,
telefon = model.uzytkownikModle.telefon,
adres_zamieszkania = model.uzytkownikModle.adres_zamieszkania,
email = model.uzytkownikModle.email,
// Remove this line entirely LoginID = newlog.LoginID //<<<----------------
};
// Add the child object (user) to your Logowanie object (newlog)
newlog.uzytkowniks.Add(user) // This may just be uzytkownik. Pluralization in LINQ is weird
// It is not necessary to queue the user object for insertion
// the newlog object will do that for you
baza.Logowanies.InsertOnSubmit(newlog);
// baza.uzytkowniks.InsertOnSubmit(user);
// SubmitChanges at this point will insert all of the children
// of newlog and assign the IDs properly
baza.SubmitChanges();
// at this point you should be able to get the newlog.LoginID
// and the user.UserID (assuming this is what you called it)
Когда я впервые столкнулся с этим, мне показалось немного отсталым,как только вы разбиваете отношения на их классовые представления, это действительно начинает иметь смысл.Также замечательно, что он выполняет все задания для вас.