Трябва да актуализирам повече от едно известие за актуализация, но всички трябва да работят върху автоматичност, т.е. да актуализират всички или никакви.
в интернет и в някои други SO въпроси имамоткрих как да използвам транзакцията, но не намерих нито един от тях да казва, че да актуализира множество отчети в една транзакция. Вижте по-долу три изявления за актуализации, които в момента не се изпълняват под транзакция
/// this are my update calls.
var report = reportRepository.Update(reportModel);
var book = bookRepository.Update(bookModel);
var mobile = mobileRepository.Update(mobileModel);
// each Update method for all repository will looks like
public returnModel Update(someModel model)
{
// assign values from model to entity
Context.ObjectStateManager.ChangeObjectState(entity,System.Data.EntityState.Modified)
Context.SaveChanges();
}
Отговори:
4 за отговор № 1Можете да обновите актуализациите в a TransactionScope:
using (TransactionScope transaction = new TransactionScope())
{
var report = reportRepository.Update(reportModel);
var book = bookRepository.Update(bookModel);
var mobile = mobileRepository.Update(mobileModel);
...
transaction.Complete();
}
1 за отговор № 2
Както споменахме Дарин, използвайте обхват на сделката или мояпредпочитан е да имате вашите хранилища принадлежащи към интерфейса на IUnitOfWork. Актуализацията на обажданията просто определя състоянието да бъде променено и SaveChanges се случва ВЪНШНО от хранилището ви, за да се запазят всички промени наведнъж. Това трябва да се случи автоматично в рамките на една транзакция.
Така че се обаждате на всичките си актуализации, а след това на unitOfWork.SaveChanges, където персонализираната ви единица на работна класа съдържа препратка към контекста ви и изпълнява метод, дефиниран в IUnitOfWork, наречен Save ()
0 за отговор № 3
Основно трябва да го управлявате чрез TransactionScope Class и с това можете да настроите няколко актуализации на Модел и след това да използвате Transaction.Complete, за да запазите вашите неща в една транзакция.
Моля те, провери Актуализиране на няколко обекта в една транзакция в рамка на предприятието за повече информация.