实体框架是否在不从代码中专门调用save()的情况下保存数据对象
本文关键字:save 情况下 对象 数据 保存 调用 是否 框架 代码 实体 | 更新日期: 2023-09-27 18:24:35
最近我们在实体框架保存数据对象方面遇到了问题,尽管我们没有要求它这样做
public virtual ActionResult Index()
{
var productListViewModel = new ProductListViewModel
{
Products = ProductService.GetAllProducts()
};
// temporarily override file url to display images
foreach (var product in productListViewModel.Products)
{
product.ImageFileName = FileUploadService.GetProductThumbnailUrl(product);
}
return View(productListViewModel);
}
GetProductThumbnailUrl()函数返回一个由静态URL+ImageFileName组成的格式化路径字符串。然而,出于明显的原因,我们不想保存此路径,只是暂时将其用于视图。
但奇怪的是:有时所有这些产品都会保存到数据库中,这会给我们提供无法使用的格式错误的URL。
所以我现在的问题是,是什么导致了这种情况?(我使用unity进行dep.注入)
至于修复,我只是不更改数据对象中的任何内容,而是使用渲染操作:
public ActionResult GetProductUrl(DomainModel.Product p)
{
return Content(FileUploadService.GetProductThumbnailUrl(p));
}
在视图中:
@Html.Action(MVC.Admin.Product.GetProductUrl(p))
在那里的某个地方,您正在根据从中提取的上下文调用提交更改。这是唯一能挽回局面的方法。