NopCommerce use entity framework with lazy loading and proxied entities for tracking changes, when you instantiate a new entity (as in new ProductViewDetails()) the entity framework context does know nothing about that entity and the context can´t track any changes.
- If the entity exists previously get it from the repository with GetById method instead of instantiating it, the context will return and attached and proxied entity so the context will tack every change you do and when you call Update all the changes will be save.
- If your entity is a new one you should call Add method of the repository.