기존 중소 기업 ERP 시스템을 더욱 발전시키기 위해 DevExpress XAF & XPO를 실험하고 있습니다. 기존 테이블을 변경하면 안되는 SQL 데이터베이스가 있습니다. 우리가하려는 일은 객체 상속 (MapInheritanceType.OwnTable
)을 통해 이전 테이블에 "연결"되어야하는 새로운 테이블에만 필요한 새로운 테이블 속성을 추가하는 것입니다.XAF/XPO 기존 데이터베이스 통합 방법
예 :
기존 tCustomer 테이블이 있습니다. 이제 우리는 XPO 개체가
public class tCustomerExtended : test.Module.BusinessObjects.db.tCustomer ...
다음 새로운 특성을 가진 연장하여야한다 tCustomerExtended
클래스처럼 tCustomerExtended 추가하고 tCustomer
클래스 (순서대로 이전 클라이언트 응용 프로그램에서 사용되는) 변경되지 않습니다.
물론 잘 작동합니다. 새 테이블 tCustomerExtended
이 기본 키 kCustomer (기존 테이블의 키)로 생성됩니다. 또한 XAF는 예상대로 UI를 생성합니다. tCustomerExtended
항목을 표시하므로 tCustomerExtended
보기가 비어 있습니다.
!!! 그러나 우리가 실제로 달성하고자하는 것은이 뷰에 기존의 모든 tCustomer
항목과 tCustomerExtended
의 새 속성을 표시하는 것입니다. 그런 다음 OnSaving 메서드는 레거시 속성을 tCustomer에 저장하고 새 속성은 tCustomerExtended에 저장합니다. 또한 이전 tCustomer 테이블 인 kCustomer PK에는 Identity Specification이 없으므로 kCustomer 키를 생성해야합니다.
이 순간에 나는 낡은 tCustomer
(절대적으로 허용되지 않는 것)을 변경하지 않고 이것을 달성하는 방법을 알지 못합니다.