У меня есть два класса, которые связаны отношением один ко многим.Категория может иметь несколько Продуктов, у Продукта может быть только одна Категория.
Модели
Models / Category.cs:
namespace Projeto.Models
{
public class Category
{
public int CategoryId { get; set; }
public string Name { get; set; }
public virtual ICollection<Product> Products { get ; set; }
public ICollection<CategoryCategory> CategoryParent { get; set; }
public ICollection<CategoryCategory> CategoryChild { get; set; }
}
}
Models / Product.cs:
namespace Projeto.Models
{
public class Product
{
public int ProductId { get; set; }
public string Name { get; set; }
public virtual Category Category { get; set; }
}
Проблема
Когда я выполняю POST или PUT, пытаясь обновить «категорию» данного продукта, возвращается следующая ошибка:
Тело запроса(HttpPut):
{
"productId": 1,
"name": "testing",
"category": 1
}
Ответ:
{
"category": [
"Error converting value 1 to type 'Projeto.Models.Category'. Path 'category', line 4, position 15."
]
}
Возможные решения
Я пробовал несколько комбинаций «виртуального» типа данных, который яseen решает эту проблему, но никогда не сможет исправить ошибку и заставить операции CRUD функционировать должным образом.Я также попробовал аннотацию данных [ForeignKey], опять же без удачи:
public int CategoryMetaID;
[ForeignKey("CategoryMetaID")]
public virtual Category Category { get; set; }
Правда, я не очень разбираюсь в C #, ASP.NET MVC или самой Entity Framework, так что это можетбыть действительно ошибкой новичка.Однако мне удалось настроить работающий API, который может устанавливать POST и UPDATE отношения «многие ко многим» («Product is Product»), но, похоже, не могу решить эту проблему отношения «один ко многим» с внешним ключом.
Любое просвещение будет с благодарностью.Заранее спасибо!