в MVC 3 возможно ли откатить базу данных после вызова DbContext.SaveChanges ()?
Мой класс сущностей:
public class BipEntities : DbContext
{
public DbSet<Page> Pages { get; set; }
public DbSet<ImageFile> ImageFiles { get; set; }
}
Что я пытаюсь сделать, это вставитьЗапись ImageFile в базу данных, затем, используя автоматически увеличенный идентификатор в качестве имени файла изображения, сохраните файл изображения в другом месте.Когда происходит сбой System.IO, я хотел бы выполнить откат базы данных.
BipEntities db = new BipEntities();
db.Database.Connection.Open();
DbTransaction tranx = db.Database.Connection.BeginTransaction();
ImageFile img = new ImageFile { CreatedAt = DateTime.Now };
db.ImageFiles.Add(img);
db.SaveChanges();
string filename = "img" + img.Id.ToString() + ".png";
try {
//Works on system IO to process file
tranx.Commit();
} Catch ( Exception) {
tranx.Rollback();
}
db.Database.Connection.Close();
Однако приведенный выше код выдает мне это сообщение об ошибке:
EntityConnection can only be constructed with a closed DbConnection.