나는 성공적으로 사용하고있는 Linq-to-Sql 기반 저장소 클래스가 있습니다. 솔루션에 WCF 기반 액세스를 제공하는 일부 기능을 추가하려고합니다.Linq-To-Sql with WCF, 모델 및 POCO ViewModels 연결이 끊긴 "DataContext"타임 스탬프/Rowversion
나는 생성 된 Linq 클래스를 DataContracts로 노출시키지 않았으며 대신 반환 할 각 엔터티에 대해 자체 "ViewModel"을 POCO로 만들었습니다.
제 질문은 업데이트를 수행하고 내 서비스 내에서 순환 참조와 같은 일부 Linq-To-Sql 기능을 사용하기 위해 데이터베이스별로 각 테이블에 Rowversion/Timestamp 필드를 추가해야합니까? 그래서 dc.Table.Attach(myDisconnectedObject)
같은 코드를 사용할 수 있습니까? alternitive은, 추한 것 같다
var updateModel = dc.Table.SingleOrDefault(t => t.ID == myDisconnectedObject.ID);
updateModel.PropertyA = myDisconnectedObject.PropertyA;
updateModel.PropertyB = myDisconnectedObject.PropertyB;
updateModel.PropertyC = myDisconnectedObject.PropertyC;
// and so on and so forth
dc.SubmitChanges();
리플렉션을 사용하여 모든 필드가 linq 및 자신의 클래스에서 동일한 이름을 가진 경우 필드를 설정할 수도 있습니다. – vittore
그와 같은 성능은 어떻습니까? 당신이 예제를 게시 할 수 있습니다. 왜냐하면 저에게 두 세계의 장점처럼 * 들립니다. 데이터베이스 필드를 추가하고 디자이너가 최신 버전인지 확인하는 등의 코드 업데이트에 대해 걱정할 필요가 없습니다. – Nate