Есть, модель
public class Categories
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int CategoriesId { get; set; }
public int? BravoId { get; set; }
public string Name { get; set; }
public int? parent_id { get; set; }
}
Контролер
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Index(Categories category)
{
string str;
using (HttpClient http = new HttpClient())
{
str = http.GetStringAsync("https://......./export/v2/?format=json&city=msk").Result;
}
JObject jObject = JObject.Parse(str);
var allUid = jObject["catalog"]["categories"].Select(n => n.ToString()).ToList();
foreach (var catg in allUid)
{
JObject jObject2 = JObject.Parse(catg);
var id2 = jObject2["id"].ToString();
category.BravoId = Convert.ToInt32(id2);
category.Name = jObject2["name"].ToString();
if (jObject2["parent_id"] == null)
{
category.parent_id = null;
}
else
{
var parent_id2 = jObject2["parent_id"].ToString();
category.parent_id = Convert.ToInt32(parent_id2);
}
_context.Add(category);
await _context.SaveChangesAsync();
}
return RedirectToAction("Index");
}
Добавляется одна запись, а потом появляется ошибка:
Cannot insert explicit value for identity column in table 'Categories' when IDENTITY_INSERT is set to OFF.
Не могу понять, где ошибка.
Нашел ошибку, не создавал внутри циклы новую запись.
category = new Categories();
Поэтому EF и пыталось каждый раз вставить один и тот же ID. Рабочий Контроллер выглядит так:
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Index(Categories category)
{
string str;
using (HttpClient http = new HttpClient())
{
str = http.GetStringAsync("https://......./export/v2/?format=json&city=msk").Result;
}
JObject jObject = JObject.Parse(str);
var allUid = jObject["catalog"]["categories"].Select(n => n.ToString()).ToList();
foreach (var catg in allUid)
{
category = new Categories();
JObject jObject2 = JObject.Parse(catg);
var id2 = jObject2["id"].ToString();
category.BravoId = Convert.ToInt32(id2);
category.Name = jObject2["name"].ToString();
if (jObject2["parent_id"] == null)
{
category.parent_id = null;
}
else
{
var parent_id2 = jObject2["parent_id"].ToString();
category.parent_id = Convert.ToInt32(parent_id2);
}
_context.Add(category);
await _context.SaveChangesAsync();
}
return RedirectToAction("Index");
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Помогите! Не могу собрать проектДелаю релиз - у меня запускается, на 4 других машинах либо ошибка(на одной машине), либо совсем ничего
Такой вопрос, у меня есть БД и цена хранится в decimal
Не пишет ошибку что логин занят и что поля пустые, всегда пишет что успешно зарегистрированыВ базу заносит если верно данные вести
Есть сайт на wordpress на страницах которого через шорткод хочу выводить портфолио для каждой со своими особенностямиВ functions