Я использую код EF для первой миграции в MVC5 с SQL Server. Я создал метод post, я отправляю данные DTO от клиента, и я верю, что все в порядке, но когда я пытаюсь сохранить данные в базу данных, я получаю это недопустимое исключение имени столбца для свойства внешнего ключа.
Это первый раз, когда я на самом деле противостою этой ошибке. Я проверил другие вопросы, и большинство ответов были связаны с аннотацией данных [ForeignKey], но я думаю, что реализовал это правильно
Это модель
public class ServiceProvider
{
public Guid Id { get; set; }
public string Name { get; set; }
public string PhoneNumber { get; set; }
public double YearsOfExperiance { get; set; }
public double AverageRank { get; set; }
public string Nationality { get; set; }
public ICollection<JobImage> JobImages { get; set; }
public ICollection<Review> Reviews { get; set; }
public ICollection<Rank> Ranks { get; set; }
public bool Active { get; set; }
[ForeignKey("Category")]
public int CategoryId { get; set; }
public Category Category { get; set; }
public bool Approved { get; set; }
}
Это метод ActionResult контроллера
[HttpPost]
public ActionResult AddServiceProvider(ServiceProviderDTO serviceProvider)
{
bool isInDb = _context.ServiceProviders.Any(s => s.Name == serviceProvider.Name) ? true : false;
//var serviceProviderInDb = _context.ServiceProviders.Where(s => s.Name == serviceProvider.Name).FirstOrDefault();
var newServiceProvider = new ServiceProvider();
if (isInDb == false)
{
newServiceProvider = new ServiceProvider
{
Id = Guid.NewGuid(),
Name = serviceProvider.Name,
PhoneNumber = serviceProvider.PhoneNumber,
YearsOfExperiance = serviceProvider.YearsOfExperiance,
Nationality = serviceProvider.Nationality,
CategoryId = serviceProvider.CategoryId,
Active = true,
Approved = serviceProvider.Approved == null ? false : serviceProvider.Approved.Value
};
_context.ServiceProviders.Add(newServiceProvider);
_context.SaveChanges();
}
return RedirectToAction("Index", "Home");
}
Ошибка возникает на _context.SaveChanges();
В нем говорится, что CategoryId
является недопустимым именем столбца
Это не первый раз, когда я использую код первой миграции, и я никогда не сталкивалсяэта ошибка раньше, так что я действительно понятия не имею, почему это происходит!