2009-05-22 2 views
0

내 Entity Framework 쿼리를 다음과 같이 변경하면 어떤 문제가 발생합니까?Entity Framework에서 어떤 문제점을 가지고 전체 개체 대신 특정 열을 선택합니까?

var contracts = from contract in Context.Contracts select contract; 

다음과 같이 변경합니다.

var contracts = from contract in Context.Contracts select new MyContract{ Key = contract.key, Advertiser = new MyAdvertiser{ Key = contract.Advertiser.Key } }; 

ie 계약 선택에서 열을 기반으로 새 개체 선택으로 변경 계약.

두 접근법 중 하나는 엔티티를로드 후에 도메인 오브젝트에 맵핑하고 저장시 엔티티로 다시 매핑하는 것입니다.

답변

5

이 접근법에는 아무런 문제가 없습니다. 몇 가지 유의해야 할 사항이 있습니다.

1) 도메인 개체는 도메인 프로세스가 존재하지만 그렇지 않은 것처럼 보이는 데이터를 사용하려고하는 경우를 방지하기 위해 항상 채워 져야합니다. 도메인 개체의 전체 데이터 집합이 필요하지 않은 동일한 도메인 프로세스가 있고 불필요한 데이터를로드하지 않으려는 경우 해당 프로세스에 사용할 두 번째 도메인 개체를 만듭니다.

2) 데이터베이스 서버는 필드 목록이 다른 쿼리보다 동일한 필드 목록이있는 쿼리를 최적화 할 수 있습니다. 이 응용 프로그램에 성능이 중요한 경우이 변경이 쿼리 성능에 미치는 영향을 측정해야합니다. 결과 집합을 제한하면 성능이 향상되는 것처럼 보입니다. 일반적으로는 그렇지만 항상 그렇지는 않습니다.

0

필자는 어떤 방식 으로든 문제가 발생할 것이라고 생각하지 않습니다. (나는이 방법도 사용하고 있습니다.) 매핑을 수행 할 메소드를 작성했는지 확인하십시오. 모든 쿼리에서 반복 할 필요가 없습니다.

관련 문제