如果我使用作品的微軟實施單位從本教程: http://www.asp.net/mvc/tutorials/getting-started-with-ef-5-using-mvc-4/implementing-the-repository-and-unit-of-work-patterns-in-an-asp-net-mvc-application工作單位 - 我不需要使用交易?
public class UnitOfWork : IDisposable
{
private SchoolContext context = new SchoolContext();
private GenericRepository<Department> departmentRepository;
private GenericRepository<Course> courseRepository;
public GenericRepository<Department> DepartmentRepository
{
get
{
if (this.departmentRepository == null)
{
this.departmentRepository = new GenericRepository<Department>(context);
}
return departmentRepository;
}
}
public GenericRepository<Course> CourseRepository
{
get
{
if (this.courseRepository == null)
{
this.courseRepository = new GenericRepository<Course>(context);
}
return courseRepository;
}
}
public void Save()
{
context.SaveChanges();
}
//......
}
我並不需要使用事務時,我必須補充相關項目?例如,當我必須向數據庫添加訂單和訂單頭寸時,我不需要開始交易,因爲如果出現問題,則方法Save()將不會執行「是」?我對嗎?
_unitOfWork.OrdersRepository.Insert(order);
_unitOfWork.OrderPositionsRepository.Insert(orderPosition);
_unitOfWork.Save();
?? ??
那麼是否有可能將訂單插入數據庫而無需訂單或不? – michael
實體框架負責這個。它知道它需要保存相關的類,然後才能將具有外鍵的類保存到該類中。 –