Cześć wszystkim.
Przy zapisie jak i aktualizacji danych w ef core zwracam do w odpowiedzi do usera zapisane dane, problemem jest jeśli obiekt zawiera inny obiekt. Do rzeczy
Mam model danych jak niżej:
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public int AddressId { get; set; }
public virtual Address Address { get; set; }
}
public class Address
{
public int Id { get; set; }
public string FullAddress { get; set; }
}
Zapisuję go bazy danych, zapisany wynik zwracam w odpowiedzi do użytkownika
var person = new Person()
{
Id = model.Id,
Name = model.Name,
AddressId = model.AddressId,
}
_context.Person.Add(person);
_context.SaveChanges();
return Ok(person);
W odpowiedzi są dane użytkownika, ale pole Address ma wartość null. Aby to obejść przed odpowiedzią wykonuję odczyt nowo utworzonego rekordu z uwzględnieniem właściwości Address i zwracam
int id = person.Id
person = _context.Person
.Include(p => p.Address)
.Where(p => p.Id == id).FirstOrDefault();
return Ok(person);
Tak samo przy aktualizacji danych. Czy można bezpośrednio po zapisaniu otrzymać z bazy kompletny obiekt zawierający wszystkie pola obiektu Person jak i pola we właściwości Address ?
Trochę by to uprościło kod.