Cześć wszystkim
Mam problem z pobraniem z bazy nowo dodanego obiektu. Struktura wygląda tak:
Obiekt, w którym przechowuję dane marek
public class Brand
{
public int ID { get; set; }
[Required]
[Display(Name = "Marka")]
public string Name { get; set; }
}
Obiekt, w którym przechowuję dane wersji, w jego skład wchodzi wcześniej pokazana marka
public class Editions
{
public int ID { get; set; }
[Required]
[Display(Name = "Wersja")]
public string Name { get; set; }
public int BrandID { get; set; }
public virtual Brand Brand { get; set; }
[NotMapped]
public string BrandName { get { return Brand.Name; } }
}
I w kontrolerze dodaję do bazy nową pozycję, następnie po ID obiektu pobieram nowo dodany obiekt z bazy.
var entry = new Editions() { Name = model.Name, BrandID = model.BrandID };
context.Editions.Add(entry);
context.SaveChanges();
var newEntry = context.Editions.Find(entry.ID).FirstOrDefault();
return Json(newEntry, JsonRequestBehavior.AllowGet);
I tu się pojawia problem, ponieważ w nowo pobranym obiekcie Brand jest równe null. Właściwość Name ma taką wartość jaką dodałem.
Mogę pobrać z bazy dodany obiekt ale w oddzielnym żądaniu http. A więc powyższa metoda zwraca mi tylko ID nowo utworzonego obiektu, kolejne żądanie pobiera z bazy po przekazanym ID obiekt. W takim przypadku otrzymuję kompletny obiekt zawierający Brand. Jest to jakieś obejście ale trochę komplikuje kod po stronie javascriptu jak i wydłuża sam czas przetwarzania.
Czy można w jednym żądaniu dodać obiekt do bazy, "odświeżyć go" pobierając z bazy i przekazać jako wynik do przeglądarki ?