0
我有一個場景,我有一個圖像屬性是產品實體的一部分。實體框架告訴上下文實體已更新
<div class="editor-label">Image</div>
<div class="editor-field">
@if (Model.ProductItem.ImageData == null)
{
@:None
}
else
{
<img alt="Product Image" width="125" height="125"
src="@Url.Action("GetImage", "Product", new { Model.ProductItem.ProductId })" />
}
</div>
<div>Upload new image: <input type="file" name="Image" /></div>
要編輯的當前圖像的用戶選擇基本上通過上載一個新的:
允許用戶經由MVC3屏幕編輯本產品時,如下所述圖像屬性被顯示。這意味着當前ImageData屬性爲null,模型狀態無效。新圖像過去在後,所以我將其設置爲ImageData屬性並清除模型驗證錯誤。
然後我通過context.savechanges()方法保存'更改',但是上下文不認爲這個特定實體有任何改變。爲了避開這個我已經做了,當上編輯如下:
if (context.Products.Local.Count() == 0)
{
Product procurr = context.Products
.Where(p => p.ProductId == product.ProductId)
.FirstOrDefault();
context.Entry(procurr).CurrentValues.SetValues(product);
}
從本質上講,我強迫一個更新的項目中,我想updqate產品清單(procurr是在列表中的項目和產品我想要保存的新的編輯值)
我的問題是(A)這是使用上下文來做到這一點的最好方法,(B)是否有更好的方式在UI中做到這一點即將新舊圖像綁定在一起,以便模型自動獲取更改?
謝謝