다른 사람들이 다음 시나리오에 어떻게 대처하는지 배우고 싶습니다.데이터베이스 지속성을위한 C# 객체 평등화
이것은 숙제가 아니거나 어떤 종류의 과제도 아닙니다. 예제 클래스는 내 질문을 더 잘 설명하기 위해 만들어졌지만 피드백을 보내고 싶은 실제 시나리오를 반영합니다.
우리는 데이터베이스에서 모든 데이터를 검색하여 개체에 배치합니다. 객체는 하나의 레코드를 나타내며 데이터베이스에 여러 레코드가있는 경우 데이터를 레코드 객체의 List <>에 배치합니다.
다음과 같은 클래스가 있다고 가정 해 보겠습니다.
public class Employee
{
public bool _Modified;
public string _FirstName;
public string _LastName;
public List<Emplyee_Address> _Address;
}
public class Employee_Address
{
public bool _Modified;
public string _Address;
public string _City;
public string _State;
}
명료하게하기 위해 Getters와 Setters가 클래스에서 생략되었습니다. 어떤 코드 경찰이 나를 사용하지 않는다고 비난하기 전에이 예를 빠뜨린 것입니다.
데이터베이스에는 Employees에 대한 테이블과 Employee Addresses에 대한 테이블이 있습니다.
개념적으로 데이터베이스 테이블의 데이터를 나타내는 List 개체를 만드는 것입니다. 우리는 프런트 엔드의 컨트롤에 바인드하는이 오브젝트의 딥 클론을 수행합니다. 그런 다음 데이터베이스의 데이터를 나타내는 두 개의 객체 (Orig 및 Final)가 있습니다.
사용자는 레코드를 생성, 수정, 삭제하여 "최종"개체를 변경합니다. 그런 다음 이러한 변경 사항을 데이터베이스에 유지하려고합니다.
분명히 우리는 가능한 한 우아하고 편집, 생성, 삭제가 필요한 레코드를 삭제하고자합니다.
우리는 궁극적으로 우리가 할 수 있도록 두 개의 List 객체를 비교하려고합니다.
변경 사항이 데이터베이스에 유지 될 수 있도록 변경된 특성을 확인하십시오.
두 번째 목록 <에 더 이상 존재하지 않는 속성 (레코드)이 있는지 확인하여 이러한 레코드를 데이터베이스에서 삭제할 수 있습니다.
새 목록 <에 새 속성이 있는지 확인하여 데이터베이스에 만들 수 있습니다.
우리가 가장 잘 수행 할 수있는 방법에 대해 공을 굴리는 사람. 최상위 속성뿐만 아니라 변경 사항을 확인하기 위해 Employee_Address 목록을 드릴 다운해야합니다.
나는 분명히하고 희망을 갖기를 바랍니다.