Я относительный новичок в ASP CORE, и я пытаюсь опубликовать JSON со стороны Angular 6 Client.
JSON выглядит следующим образом (Пожалуйста, используйте любой JSON для форматирования для его визуализации):
{"supplier":10001,"date":"2018-09-03T20:42:29Z","summary":[{"day":"1","aliments":
["1012","1016","1017","1013","1021","1020"]},{"day":"2","aliments":
["1015","1019","1023","1022","1018","1014"]},{"day":"3","aliments":
["1027","1031","1030","1026","1025","1029"]},{"day":"4","aliments":
["1040","1039","1035","1033","1038","1036"]},{"day":"5","aliments":
["1032","1037","1042","1043","1041","1038"]}]}
Эта информация должна быть вставлена в 2 таблицы, первая из которых является основной таблицей, имеющей такую структуру:
Название модели и таблица "Меню".
Colums:
MenuId,
Дата,
FK_Supplier
Модель EF Core:
public int MenuId { get; set; }
public DateTime Date { get; set; }
public int FkSupplier { get; set; }
Вторым является "menudia" (таблица и модель):
Colums:
MenudiaId,
FK_AlimentId,
FK_MenuId,
Диаметр
EF Core:
public int? MenuDiaId { get; set; }
public int? FkAlimentId { get; set; }
public int? FkMenuId { get; set; }
public int? Dia { get; set; }
Я сделал 2 снимка, чтобы показать вам, как данные должны быть вставлены в базу данных:
Меню:
![enter image description here](https://i.stack.imgur.com/MD5bv.png)
Menudia:
![enter image description here](https://i.stack.imgur.com/hVuk3.png)
Я создал 2 модели для обработки данных так, как мне нужно, и вот результат:
NewMenuContent Модель:
public int? menuid { get; set; }
public int suplidor { get; set; }
public DateTime fecha { get; set; }
public List<MenuItems> menuresumen { get; set; }
MenuItems Модель:
public int Day { get; set; }
public List<dynamic> alimentos { get; set; }
У меня уже есть это в моем контроллере, который успешно вставляет данные в таблицу меню:
[HttpPost]
public int PostMenu([FromBody] NewMenuContent menu)
{
var newmenu = new Menu
{
FkSuplidorId = menu.supplier,
Semana = menu.date,
};
var menuid = _context.Menu
.Where(x => x.FkSupplierId == menu.supplier)
.Where(x => x.date == menu.date)
.Select(x => x.MenuId).FirstOrDefault();
_context.Menu.Add(newmenu);
_context.SaveChanges();
return menuid;
} //NOTE: "menu" is the json.
ПРИМЕЧАНИЕ: некоторые переменные и свойства этого вопроса были переведены с испанского на английский, если вы видите какую-либо ошибку при наборе, не обращайте на это внимания.
Итак, как мне вставить данные в таблицу меню, как показано на рисунках выше? Обратите внимание, что я хотел бы, чтобы это было в том же контроллере и в той же функции, что и выше.
Логин этого процесса, при котором пользователь будет выбирать диапазон блюд в день, который будет частью меню продуктов питания конкретного поставщика, поэтому, например, если пользователь выберет поставщика «Макдональдс», он сможет выбрать несколько блюд в день (понедельник = гамбургер, картофель фри, куриные наггетсы, кола).
Любая помощь в этом вопросе очень ценится, так же как и при поиске в Интернете и пробовании множества разных вещей без успеха.