{
public class EFProductRepository : IProductsRepository
{
private EFDbContext context = new EFDbContext();
public IQueryable<Product> Products {
get { return context.Products; }
}
public void SaveProduct(Product product)
{
if (product.ProductID == 0)
{
context.Products.Add(product);
}
else
{
Product prod = context.Products.First(x => x.ProductID == product.ProductID);
prod.Description = product.Description;
prod.Category = product.Category;
prod.Name = product.Name;
prod.Price = product.Price;
}
context.SaveChanges();
}
public void DeleteProduct(Product product) {
context.Products.Remove(product);
context.SaveChanges();
}
}
}
我对 ASP.NET 相当陌生,在做教程时,我无法理解保存到上下文的工作原理,特别是我的意思是这部分:
else
{
Product prod = context.Products.First(x => x.ProductID == product.ProductID);
prod.Description = product.Description;
prod.Category = product.Category;
prod.Name = product.Name;
prod.Price = product.Price;
}
context.SaveChanges();
根据我对 OOP 的了解,在本地创建的对象仅存在于创建它的范围内。包含“产品产品”的更改值的“产品产品”如何与“上下文”相关联并成功保存变化?
此外,“context.SaveChanges()”调用如何工作,因为它不发送任何“产品”类型的参数?