最近、エンティティフレームワークがデータオブジェクトを保存する際に問題が発生しました。ここでは例です:エンティティフレームワークは、コードからsave()を特に呼び出さずにデータオブジェクトを保存しますか
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を提供しています。
私の質問は今これを引き起こす可能性がありますか? (私はDEPのために団結を使用しています注入。)
し、修正のためとして、私はちょうどレンダリングされたアクションデータオブジェクトに何かを変更し、代わりに使用しないでください。
public ActionResult GetProductUrl(DomainModel.Product p)
{
return Content(FileUploadService.GetProductThumbnailUrl(p));
}
をとビューでは:
@Html.Action(MVC.Admin.Product.GetProductUrl(p))
あなたは 'ProductService'のコードを投稿できますか?多分コンテキストインスタンスを保持し、異なるアクションやセッションからのデータを保存するかもしれません。 – Menahem
はい、明らかに、別の方法でリポジトリへのすべての変更を保存しました。それはすべてを説明する...ありがとう。 – carlossless