Я использую платформу Entity Framework с базой примеров Northwind.Не удается обновить свойство объекта в моей базе данных
У меня есть этот объект:
Product p = new Product { ProductName = "New awesome Product" };
Category c = new Category { CategoryName = "Cool Category" };
p.Category = c;
pdm.Insert(p);
ДПМ есть класс, который обрабатывает действия CRUD. Класс ДПМ использует этот рабочий код:
using (var ctx = new NorthwindEntities())
{
ctx.Products.Add(p);
ctx.SaveChanges();
}
Однако, если я хочу, чтобы обновить категорию в совершенно новой категории, я стараюсь это:
p.Category = new Category { CategoryName = "Even Cooler Category" };
p.ProductName = "Now even more awesome";
pdm.Update(p);
Что вызывает этот код в классе ДПМ:
using (var ctx = new NorthwindEntities())
{
Product p = ctx.Products.Find(updatedProduct.ProductID);
ctx.Entry(p).CurrentValues.SetValues(updatedProduct);
ctx.SaveChanges();
}
Моя проблема: имя моего продукта изменено в базе данных, Категория остается неизменной. Почему категория не меняется в моей базе данных? Идентификатор категории моей строки продукта остается неизменным, и ни одна из них не является новой категорией, созданной в моей базе данных. Что происходит не так?
Спасибо, что помогло. – ohyeah