리포지토리 및 UnitOfWork 패턴을 올바르게 구현했는지 확신 할 수 없지만이 방법이 어떻게 다른지 알 수는 없습니다.UnitOfWork 패턴 및 원자 단위 작업
예를 들어 Apple과 Orange의 두 개체가 있습니다. 애플이 지금과 같은 OrangeID를 통해 오렌지에 가입되어
는 :
public class Apple
{
public int OrangeID { get; set; }
}
나는 새로운 애플과 새로운 오렌지를 만들려면, 나는 적절 ID 링크를 설정하려는. 그러나 나는 문제가있다. Orange를 데이터베이스에 저장할 때까지 OrangeID를 알지 못합니다.
그래서 이것은 내가 다음이 의미 : 나는 위의 외부 앉아 거래를하지 않는 한
var unitOfWork = new UnitOfWork();
Orange newOrange = new Orange();
OrangeRepository.Insert(newOrange);
unitOfWork.Commit();
//newOrange will have been updated with the actual ID
Apple newApple = new Apple(newOrange.ID);
etc...
이, 원자 작동하지 않습니다. 하지만 UnitOfWork가 처리해야 할 것이라고 생각했습니다. 또는 내 UnitOfWork.Commit()가 데이터베이스에 쓸 때 적절한 값을 할당해야합니까?
어떤 도움/조언을 주시면 감사하겠습니다, 감사 던컨