저는 C#과 함께 사용하는 Entity Framework 4.0을 처음 사용하고 있으며 현재이 기능을 시험 중입니다.Entity Framework 4 - 생성 된 엔터티 내에 ObjectContext 참조 포함
대부분의 유사한 ORM과 마찬가지로 생성 된 엔티티에서 수행 된 데이터 조작 및 CRUD 문 생성을 처리하기 위해 Context 객체를 사용합니다.
즉, 데이터베이스에 변경 사항을 다시 저장하려면 엔티티를 인스턴스화 한 ObjectContext에 대한 참조에 항상 액세스 할 수 있어야합니다.
액세스 할 수있는 범위 (예 : 같은 메서드)에서 컨텍스트를 만든 경우에는 문제가 없지만 메서드에 엔터티 및 엔터티 집합을 전달하고이 메서드로 변경 내용을 저장하려면 어떻게해야합니까? 유일한 쉬운 방법은 매개 변수와 함께 ObjectContext를 전달하는 것입니다.
또 다른 해결책은 ObjectContext를 일종의 전역 변수에 배치하는 것입니다. 말할 필요도없이, 나는이 두 가지 접근법에 대한 스타일링 및 유지 관리 문제를 발견합니다.
간단히 말해서 내가 상상할 수있는 가장 좋은 방법은 엔터티 또는 엔터티 집합에서 ObjectContext에 대한 참조를 얻는 것입니다. 기본적으로 가능하지 않다는 것을 알고 있습니다.
I have found a method 확장 메서드를 추가하여 개체에서 ObjectContext를 가져 오는 것을 보여줍니다. 그러나 관계가있는 엔티티에서만 작동하며이 메서드를 호출하는 것은 작성자에게 비용이 많이 듭니다.
T4 템플릿을 수정하여 모든 엔티티에 Context 속성을 추가하고 엔티티의 인스턴스에 자동으로 채우도록하려고 생각했습니다.
나는 T4 템플릿을 한 번 수정하여 Entity Framework에서 생성 된 클래스에 최대 길이를 적용했습니다 (Julie Lerman의 Programming Entity Framework 4 책을 참고). 지금까지 T4 구문을 정말 좋아한다고 말할 수는 없지만 최선/유일한 방법 인 경우 ...
누구나 이미이 작업을 수행 한 사람이 누구이며이 작업을 처리하는 가장 좋은 방법은 무엇입니까? 자신의 T4 템플릿을 공유하거나 가장 좋은 부분 방법이나 이벤트가 무엇인지를 설명하여 기꺼이 해결할 수 있습니까?
이러한 접근 방식을 사용할 때 주요 단점은 무엇입니까? ObjectContext에 대한 참조가 너무 많아서 엔티티 중 일부가 범위에 남아 있지만 실제로 ObjectContext에 더 이상 사용하지 않는 경우 GC에서 다시 수집 할 수있는 기능이 지연되거나 지연 될 수 있습니다.
감사합니다.