Сохраняет ли структура сущностей объекты данных без специального вызова save () из вашего кода - PullRequest
0 голосов
/ 15 февраля 2012

В последнее время у нас возникли проблемы с сохранением объектов данных в каркасе сущностей, даже если мы этого не просим.Вот пример:

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 для деп. Инъекции)


А что касается исправления, я просто ничего не меняю в объекте данных, а вместо этого использую визуализированное действие:

public ActionResult GetProductUrl(DomainModel.Product p)
{
    return Content(FileUploadService.GetProductThumbnailUrl(p));
}

А в виде:

@Html.Action(MVC.Admin.Product.GetProductUrl(p))

1 Ответ

3 голосов
/ 15 февраля 2012

Где-то там вы вызываете изменения изменений в контексте, из которого извлекаете.Это единственный способ, чтобы получить спасение назад.

...