Zwrócenie do przeglądarki nowo dodanego obiektu

0

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 ?

0

Musisz poinformować EF, że chcesz otrzymać Editions razem z zależnymi Brandami. Spróbuj tak:

var newEntry = context.Editions.Find(entry.ID).Include(s => s.Brand).FirstOrDefault();

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