2012-11-07 3 views
0

일반적으로 양식 응용 프로그램을 사용하여 데이터베이스의 데이터로 작업 할 때는 데이터 집합이나 데이터 테이블에 보관하고 필요에 따라 데이터를 가져옵니다. 이제는 WPF로 작업 중이며 MVVM 패턴을 더 준수하기 위해 노력하고 있습니다. 이러한 데이터 테이블을 객체로 변환하면 MVVM에서 사용하기가 조금 더 쉬워집니다. 예를 들어더 효율적인 것은 무엇입니까, 데이터 테이블 또는 사용자 정의 개체입니까?

, 정말 같은 쿼리에 의해 채워진 테이블이 있다면 - '밥' 곳 p.first_name = P와 같은 사람으로부터 선택 p.first_name, p.last_name, p.phone, p.email을 datatable을 유지하는 대신, 나는 그것을 이제 person 객체로 변환 할 것입니다.

성능 측면에서 볼 때 개체를 만드는 데있어 과연 무엇이 있습니까? 아니면 데이터 집합과 데이터 테이블을 사용해야합니까?

답변

2

DataTable/DataSet 대신 EF (또는 자신 만의 롤링)와 같은 ORM을 사용하면 성능에 미치는 영향은 설명하는 것과 같은 응용 프로그램에서는 무시할 수 있지만 구현 방식에 따라 다릅니다.

ORM을 사용하는 주된 이점은 형식 안전성을 보장하고 DataTable 개체에서 데이터를 검색 할 때 형식 캐스팅을 수행하지 않아도된다는 것입니다. Linq에서 lazy-loading을 사용하면 얻을 수있는 이점이있다.

엔티티 개체를 사방에 사용하는 것은 반드시 해결책이라고 생각하지 않습니다. ViewModel에서 DataTable 객체를 사용하면 아무런 문제가 없습니다 (비록 DataTable 클래스의 데이터 동기화 기능과 관련하여 사용하는 방법을 모르지만 사용은 자유 롭습니다).

새 프로젝트에서는 EF를 사용합니다. 필자가 타이핑을 담당했기 때문입니다.하지만 잘 작동하는 테이블을 사용하는 이전 프로젝트가 있다면, 그걸 고수 할 것입니다.

1

솔루션을 분명하게 만들려면 개체에 필요한 필드 만 포함하고 개체를 포용하십시오.

성능 저하로 인한 (최소) 성능 저하는 더 깨끗하고 명확한 솔루션의 잠재적 장기 성능 이점으로 인해 보상됩니다.

관련 문제