Есть, модель
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");
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Помогите! Не могу собрать проектДелаю релиз - у меня запускается, на 4 других машинах либо ошибка(на одной машине), либо совсем ничего
Такой вопрос, у меня есть БД и цена хранится в decimal
Не пишет ошибку что логин занят и что поля пустые, всегда пишет что успешно зарегистрированыВ базу заносит если верно данные вести
Есть сайт на wordpress на страницах которого через шорткод хочу выводить портфолио для каждой со своими особенностямиВ functions