2009-05-21 4 views
0

시나리오 : 사용자는 복잡한 데이터 (WPF 프론트 엔드)를 입력하고 일부 OR-mapper를 사용하여 SQLServer에 데이터를 저장합니다. Telerik의 OpenAccess를 사용합니다.부분적 데이터 입력 저장

하지만 다음 상황에 대해 생각해보십시오. 하나는 거의 유스 케이스에서 작업을 마쳤지 만 지금은 일부 정보가 누락되었습니다. 그가 입력 한 데이터가 모든 비즈니스 규칙을 충족시키지 못하기 때문에 (필요한 필드가 여전히 비어있을 수 있음) 그는 작업을 저장할 수 없습니다.

하지만 불행히도 그는 누락 된 정보를 얻을 수 없습니다. 그래서 그는 무엇을 할 수 있습니다. 전체 작업, 나쁜 생각을 버리고 기다리는 것보다는 아무 것도하지 말고 좋은 아이디어는 아닙니다.

이제 내 아이디어가 나타났습니다. 사용자가 미해결 문제를 '막을 수 있고 다른 유스 케이스로 작업하기 시작하면 도움이 될 것입니다. 그리고 일을 멈추게 한 후에 그는 시스템을 종료하고 다른 날에 그것을 해결할 수 있습니다. (그리고 그런데 그는 다른 시스템에서 계속할 수 있습니다)

그러나 어디에서 직렬화할까요? ORM의 일부 ID 정보가 포함되어 있으므로 비즈니스 객체는 직렬화 할 수 없습니다. 일부 중간 객체를 소개하면 대입 문이 분해됩니다. UI?

어쩌면 누군가가 기존 솔루션을 알고 있거나 멋진 아이디어를 가지고있을 수도 있습니다.

답변

1

은 모든 규칙을 충족하는지 여부를 추적하기 위해 상태 필드를 사용합니다. 규칙에 관계없이 구원을 허용하지만 그대로 깃발을 꽂아 라. 그것이 유효 할 때 깃발을 바꾸십시오. 나머지 사용자는 유효한 항목을 보거나 작업하게하십시오.

0

메멘토 패턴은 어떻습니까? 모든 직렬화 가능 데이터를 가져 와서 다른 클래스에 넣은 다음 직렬화하여 데이터베이스에 저장하십시오. 다시 필요할 때, 메멘토 클래스로 deserialize 한 다음 원래 객체를 채 웁니다.