2011-09-26 3 views
0

두 개의 엔티티가 있습니다. 각 엔티티는 EF 코드 우선으로 관리되며 각 엔티티는 자체 테이블에 행복하게 앉아 있습니다. Entity_A에는 "SumTotal"이라는 속성이 있습니다.이 속성은 특정 조건과 일치하는 Entity_B의 특정 열을 합한 값이어야합니다.CodeFirst를 사용하여 데이터베이스에 직접 저장되지 않은 속성을 채우는 방법

SumTotal은 DB에 유지되면 안되며 오히려 Entity_A 인스턴스가 검색 될 때마다 계산됩니다.

ComputedColumns를 살펴 보았지만 계산 된 열은 동일한 테이블의 열에 대해서만 정의 할 수 있습니다.

또한 SumTotal을 NotMapped (또는 AutoGenerated와 비슷한)로 설정해야한다고 생각하지만 SumTotal에 실제 값을 가져 오는 방법을 모릅니다. 이 질문은 의미가

희망, 사전

에 감사

답변

0

당신은 익명의 객체에 대한 결과를 프로젝트와 기업

var projection = db.EntityAs.Where(/* */) 
     .Select(a => new {A = a, Sum = a.Bs.Sum(b => b.Total)}) 

foreach(p in projection) 
{ 
    p.A.SumTotal = p.Sum; 
} 

var As = projection.Select(p => p.A); 
+0

아에 있음을 변환 할 수 있습니다, 난을 참조하십시오. 답변 해주셔서 감사합니다. 더 간결한 방법이 있습니까? 부질의 라인을 따라 생각하고 있었거나 합류했거나 비슷했습니다. 곧바로 SQL이라면 어떻게 할 것입니까? 필요한 값을 조인하고 추출하는 것처럼 보입니다. – Joe

관련 문제