比较我保存到数据库的图像没有什么不同的最佳方法是什么,从而节省了 I/O。
设想:
我使用实体框架在 MVC3 中编写 ASP.NET 应用程序。我的 UserProfile 控制器有一个Edit操作方法。现在我想检查我发回该方法的图像是否不同,如果是,那么我想调用 ObjectContext 。SaveChanges()如果它是相同的图像,然后继续。
这是我的代码的精简版本:
[HttpPost, ActionName("Edit")]
public ActionResult Edit(UserProfile userprofile, HttpPostedFileBase imageLoad2)
{
Medium profileImage = new Medium();
if (ModelState.IsValid)
{
try
{
if (imageLoad2 != null)
{
if ((db.Media.Count(i => i.Unique_Key == userprofile.Unique_Key)) > 0)
{
profileImage = db.Media.SingleOrDefault(i => i.Unique_Key == userprofile.Unique_Key);
profileImage.Amend_Date = DateTime.Now;
profileImage.Source = Images.ImageToBinary(imageLoad2.InputStream);
profileImage.File_Size = imageLoad2.ContentLength;
profileImage.File_Name = imageLoad2.FileName;
profileImage.Content_Type = imageLoad2.ContentType;
profileImage.Height = Images.FromStreamHeight(imageLoad2.InputStream);
profileImage.Width = Images.FromStreamWidth(imageLoad2.InputStream);
db.ObjectStateManager.ChangeObjectState(profileImage, EntityState.Modified);
db.SaveChanges();
}
}
}
}
所以我将我的图像作为 varbinary(max) 保存到一个 SQL Server Express DB 中,它在我的实体中被引用为一个字节数组。
这只是从帖子中循环字节数组并将其与拉回 ObjectContext 的字节数组进行比较的情况吗?