private void PhotoAlbumEntities_SavingChanges(object sender, EventArgs e)
 {
     foreach (ObjectStateEntry entry in
              ((ObjectContext)sender).ObjectStateManager.GetObjectStateEntries(EntityState.Added))
     {
         if (!entry.IsRelationship)
         {
             PropertyInfo pinfo = entry.Entity.GetType().GetProperty("Id");
             if (pinfo != null)
             {
                 pinfo.SetValue(entry.Entity, GenericUtils.CreateSequentialGuid(), null);
             }
         }
     }
 }
 /// <summary>
 ///
 /// </summary>
 /// <param name="fileName"></param>
 /// <param name="originalFileName">When you upload the file you probably save
 /// it in temp folder, so you can pass a different file name to be set as the original one</param>
 public static Photo ProcessPhoto(String fileName, String originalFileName)
 {
     //First of all resize the original image and create thumbnail
     using (Bitmap resized = resizeManager.ResizeBitmap(fileName))
         using (Bitmap thumbNail = thumbNailManager.ResizeBitmap(fileName))
         {
             String FileName      = PhotoFileManager.GenerateName();
             String ThumbFileName = GetThumbnailImageNameFromOriginalImageName(FileName);
             PhotoFileManager.SaveImage(resized, FileName);
             PhotoFileManager.SaveImage(thumbNail, ThumbFileName);
             return(new Photo()
             {
                 Id = GenericUtils.CreateSequentialGuid(),
                 FileName = Path.GetFileNameWithoutExtension(FileName),
                 ThumbNailFileName = Path.GetFileNameWithoutExtension(ThumbFileName),
                 OriginalFileName = originalFileName,
                 UploadDate = DateTime.Now,
             });
         }
 }