ASP MVC EF Обновление / вставка данных в связанные таблицы - PullRequest
0 голосов
/ 01 октября 2019

У меня есть следующие 3 модели для связанных таблиц базы данных. Я могу отобразить их в одном представлении с 3 таблицами, имеющими входные данные для каждой записи;Я могу создать объект JS со всеми записями и могу отправить в контроллер;Как мне обновить записи в базе данных? Обратите внимание, что я могу обрабатывать основные, подробные данные в контроллере, но в этом случае у меня есть основные, основные и подробные данные с несколькими строками ...

public partial class LocLocations1//Masters of Masters
{
    public LocLocations1()
    {
        LocLocations2 = new HashSet<LocLocations2>();


    }

    public int LocID { get; set; }
    public string LocName { get; set; }
    public Boolean Activated { get; set; }
    public Boolean AdminLock { get; set; }

    public virtual ICollection<LocLocations2> LocLocations2 { get; set; }

}


public partial class LocLocations2//Masters
{
    public LocLocations2()
    {
        LocLocations3 = new HashSet<LocLocations3>();
    }

    public int LocID { get; set; }
    public int MasterLocID { get; set; }
    public string LocName { get; set; }
    public short? Activated { get; set; }
    public short? AdminLock { get; set; }

    public virtual LocLocations1 LocLocations1 { get; set; }
    public virtual ICollection<LocLocations3> LocLocations3 { get; set; }
}

public partial class LocLocations3//Details
{

    public int LocID { get; set; }
    public int MasterLocID { get; set; }
    public string LocName { get; set; }
    public short? Activated { get; set; }
    public short? AdminLock { get; set; }

    public virtual LocLocations2 LocLocations2 { get; set; }


}

1 Ответ

0 голосов
/ 03 октября 2019

Сначала выберите запись и связанную запись для редактирования:

using (var dataContext = new DBContextModel())
{
   var locLocations1 = dataContext.LocLocations1_DBSet.SingleOrDefault(s => s.LocID == id_param);
   var locLocations2 = locLocations1.LocLocations2.SingleOrDefault(s => s.LocID == id_param_from_ViewModel);

   //update values and save changes to DB
   locLocations2.Activated = 1;
   locLocations2.AdminLock = 1;  
   locLocations1.AdminLock = true;               
   dataContext.SaveChanges();
}

Аналогично, вы можете выбрать из другой связанной модели и обновить данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...