Контакты

Достижения

Все достижения (2)

Наибольший вклад в теги

Все теги (18)

Лучшие ответы пользователя

Все ответы (6)
  • Как настроить cascade delete в Entity Framework?

    @zakar1ya Автор вопроса
    Junior
    После долгого чтения мануалов по fluent api, оказалось что дело совсем в другом.
    Fluent api поддерживает cascade delete по умолчанию, проблема была в том, что нажимая "удалить", представление передавало контроллеру сущность в которой поля
    public virtual List<Zakupki> Zakupki { get; set; }
            public virtual List<Zakladki> Zakladki { get; set; }
            public virtual List<Vivod> Vivod { get; set; }
            public virtual List<Prodagi> Prodagi { get; set; }
    , то есть навигационные свойства были null.
    Соответственно EF не мог удалить связанные записи потому что не знал какие, до тех пор пока я вручную не включил их в выборку
    [HttpPost]
            public ActionResult Delete(Partiya partiya)
            {
                BirdKeepingDBContext context = new BirdKeepingDBContext();
                if (ModelState.IsValid)
                {
                    Partiya part = context.Partiya
                        .Include("Zakupki")
                        .Include("Zakladki")
                        .Include("Vivod")
                        .Include("Prodagi")
                        .Single(p => p.NomerPartii == partiya.NomerPartii);
                    context.Partiya.Remove(part);
                    context.SaveChanges();
                }
    
                return View(partiya);
            }

    Остался небольшой вопрос, Include требует строку с именем связанного объекта, но напрямую прописывать, как у меня, как-то не хорошо. Как это лучше записать и вообще может есть конструкции получше чем эта?
    context.Partiya
                        .Include("Zakupki")
                        .Include("Zakladki")
                        .Include("Vivod")
                        .Include("Prodagi")
    Ответ написан
    Комментировать
  • Как организовать связь между ASP.NET Web API + windows service + SignalR?

    Почему бы не использовать signalr только для отправки сообщений клиенту, а для общения служб с mvc, rabbitmq?
    Ответ написан
    Комментировать
  • Где ошибка в описании сущностей?

    @zakar1ya Автор вопроса
    Junior
    Как и сказал Виталий Литвинюк , проблема была из-за способа подгрузки связанных данных. Вместо lazy load сделал eagerly load, когда получал закупки из контекста dbContext.Zakupki.Include(b => b.Adresses).ToList();
    Кому нужно, подробно здесь расписано.
    Ответ написан
    Комментировать

Лучшие вопросы пользователя

Все вопросы (19)