2011-10-17 2 views
1

나는 .edmx 파일에 데이터베이스 테이블을 가져온과 다른 사람 사이에 나는이 Customer 엔티티처럼이 :Entity Framework 4 : 엔티티를 확장하는 방법?

CustID 
CustName 
CustAddress 

지금은 사용자가 선택한 고객을 편집 할 수 있도록하려면 내가 주문 각각의 수를 표시해야 고객은 에디션 폼을 보여 주면서이 엔티티에 필드를 동적으로 추가해야합니다. CustOrderCount 필드는 SQL 문 SELECT COUNT(*) FROM Orders WHERE CustomerID = {id}을 평가합니다.

주문 카운트가 수동으로이 같은 선택 사용자 지정을 수행없이 EF 으로 선택되어 있으므로 어떻게 든 엔티티를 확장 할 수있는 방법이 있나요 :

.Select(c => new CustomerExtended 
{ 
    CustID = c.CustID, 
    ... 
    CustOrderCount = db.Orders.Where(o => o.OrderCustID = c.CustID).Count() 
} 

답변

2

를 프로젝트에서 edmx 파일 라이브하는을 만들 경우 classpartial 새로운 :

public partial class Customer {} 

그런 다음 자신의 속성을 추가 할 수/EF의 엔티티 방법 :

public partial class Customer { 
    public int GetSomething(){} 
} 
1

번호 엔티티는 데이터베이스 자체에서 테이블에있는 필드 만 검색합니다. 이 목적을 위해 당신은 보여준대로 프로젝션을해야하며 @Jason이 보여준대로 사용자 지정 데이터 검색을 사용해야합니다.

엔티티의 일부가 아닌 추가 데이터를 표시하려는 경우 사용자 지정보기 모델에 투영하는 것이 올바른 해결책입니다.

0

데이터베이스에보기를 만들고, 엔티티로 매핑하고, 트리거를 사용하여 CRUD 작업을 처리 할 수 ​​있습니다.

+0

흥미로운 아이디어. –