1
將我的映像保存到數據庫的最佳比較方式是什麼不同,從而節省了I/O。在保存到數據庫之前比較字節數組
場景:
進出口使用實體框架寫入MVC3 ASP.NET應用程序。我有一個編輯我的UserProfile控制器的操作方法。現在我想檢查我發佈回該方法的圖像是不同的,如果是,那麼我想調用ObjectContext。 SaveChanges()如果它是相同的圖像,則繼續前進。
這裏是我的代碼砍下版本:在n要一個SQL Server Express的數據庫,這是在我的實體的字節數組引用
[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(最大值) 。
它只是一個循環來自帖子中的字節數組並將其與將字節數組拉回到ObjectContext中的情況進行比較的情況?
謝謝傑西 - 我會給這個去! :P – garfbradaz
Enumerable.SequenceEqual http://msdn.microsoft.com/library/system.linq.enumerable.sequenceequal.aspx – takepara