CodeFirst 및 EF6을 상태에 대한 개별 매핑과 함께 사용하고 있습니다.엔티티 게시물 저장에서 EF6이 속성을 되돌릴 수 없게하는 방법이 있습니까?
- 이 (상태가 '추가'됩니다) 엔티티까지 새로운 만들기 : 나는 다음과 이상한 시나리오가 있습니다.
- 는까지 새에 종가, 즉 99 .01m '를 할당합니다.
- DB에 저장하십시오 (성공적으로 저장 될 때까지).
- 은 즉, 주문 항목이 성공적으로 순서에 따라 값을 닫을 때까지/s의
- 업데이트를 객체 '101.01m'을 만들기 수주 객체
- 을 만듭니다.
- 주문 개체를 DB에 저장합니다 (상태가 '추가'되어 성공적으로 저장 됨).
- 저장 후 닫기 값을 검사하십시오.
Cache.TodaysCashDraw.ObjectState = ObjectState.Unchanged;
값은 복귀에 관계없이 객체 상태의 적용 여부 :
- 내가 명시 적으로까지 표시하면 101.01 실제로 99.01m
입니다 예상 종가까지 관찰 . 다음 99.01m 수정 된 난을 표시하지만 경우
Cache.TodaysCashDraw.ObjectState = ObjectState.Modified;
는 DB에 최선을 다하고 있습니다.
근본적으로 개체가 변경 될 때까지 나타나는 모든 변경 사항은 되돌릴 수 있지만 지금은 문제가되지 않지만 이유에 대한 설명을 원하십니까? 이상적으로 나는 위와 같이 되돌아 가지 않고 지속될 수있는 대상물에 대한 나의 변화를 원합니다. 그 때까지는 근무 시간 중에 여러 번 변경 될 것이므로 필요할 때만 변경 사항을 적용하고 싶습니다. 주문과 아이템은 바로 저장해야하지만 메모리의 Till 오브젝트는 처리 된 주문을 반영해야합니다. 이것이 EF4와 DB First에서 잘 작동하는 현재의 생각과 접근 방식입니다.
이 문제를 해결하는 이상적인 방법은 무엇입니까?
불완전한 백업 계획은 변경 사항이 바로 적용될 때까지 커밋하는 것입니다. 당신은 그것의 상태를 저장해야 할 때, 단지 그것을 다시 부착 그런
// detach the till to prevent it from being tracked.
Cache.TodaysCashDraw.ObjectState = ObjectState.Detached;
:
_ctx.Context.Set<CashDrawsMony>().Attach(_till);
연결이 끊긴 시나리오에있을 것입니다