2013-08-14 1 views
0

특정 (계산 된) 속성이 다른 EntityObject에서 변경되면 Context에 새 EntityObject를 추가해야합니다. EntityObject 자체에서 Context에 액세스 할 수없는 것 같습니다.부분 클래스의 Context/other EntityObjects에 액세스

예를 들어

내 "직원"부분 ​​클래스는 사용자 지정 속성이 있습니다

Public Property Age As Integer 
     Get 
      Return _Age 
     End If 
     End Get 
     Set(value As Integer) 
      'Here based on some conditions, I sometimes need to add a new 
      'EntityObject to (or modify an existing EntityObject) in an EntitySet "Assumptions" 
      'HOW TO DO THAT ? 

     _Age=value 
     End Set 
End Property 
Private _Age as Integer 

을 ... 그리고 위의 "나이"가 설정되어있는 경우, 가끔 만들고 하나의 새로운 EntityObject "가정을 추가 할 필요가 "를 동일한 컨텍스트 아래에있는"가정 "EntitySet에 추가합니다.

다른 EntityObjects에서 EntityObjects에 액세스하는 것이 좋지 않은 디자인이지만 다른 방법으로이 요구를 해결할 수있는 방법은 무엇입니까?

답변

0

이 작업을 수행하는 EntityObject의 부분 클래스 인 다른 클래스를 솔루션에 추가하십시오.

해당 클래스에 속성을 추가

public partial class EntityObject 
{ 
    private int _age; 
    public List<Assumption> Assumptions { get; set; } 
    public int Age 
    { 
     get { return _age; } 
     set { _age = value; Assumptions.Add(new Assumption("Age", value); } 
    } 
} 

는 EntityObject 클래스를 쿼리 EF를 사용하는 경우, 당신은 당신의 쿼리에서 탐색 속성을 "포함"할 필요가있다.

var db = new DatabaseContext(); 
var myObjects = db.EntityObjects.Include("Assumption").Where(....).ToList(); 

그러면 필요한 것을 얻을 수 있습니다. 그런 다음 논리를 캡슐화하여 필요에 따라 모든 가정을 수정할 수 있습니다.

관련 문제