Linq-to-SQL 엔터티를 가져 와서 엔티티 집합에 포함 된 데이터가없고 이름 만있는 모든 자식 (1 세대 만) 엔터티 집합의 목록을 반환해야합니다. 내가 할 수있는 방법이 있니? 감사합니다엔터티 자식을 열거하십시오
1
A
답변
1
음, 정확하게 질문을 이해하면 데이터 컨텍스트 인스턴스에 대한 메타 모델을 검사 할 수 있습니다. 메타 모델은 모델의 테이블, 열 및 연관을 설명합니다. 기본적으로 당신은 협회가 1 대 다수 인 테이블에서 협회를보고 싶습니다.
실제로 엔티티 인스턴스로 작업하지 않으므로 데이터를 검색하는 것이 아니라이를 설명하는 정보 만 포함합니다.
이 코드를 수행해야합니다
public static string[] GetChildEntities<T>(DataContext context, T entity)
{
var mapping = context.Mapping.GetTable(typeof(T));
return mapping.RowType.Associations.Where(a => a.IsMany)
.Select(a => a.ThisMember.Name).ToArray();
}
이 지정된 친 실체에 대한 EntitySet
인스턴스를 노출 어떤 속성의 이름을 반환합니다.
편집이 코드는 제 1 발견
- 메타 모델에 기초하여, 상위 및 하위 개체 간의> * 연관 부모 엔티티에 EntitySet 속성 값을 검색하고, 자식을 추가 엔티티를 설정합니다. 이 기능은 대부분의 기본 LINQ to SQL 구현에서 작동합니다.
public static void AddChild<P, C>(DataContext context, P parent, C child)
where P : class
where C : class
{
var parentMapping = context.Mapping.GetTable(typeof(P));
var childAssociation =
parentMapping.RowType.Associations
.Where(a => a.IsMany && a.OtherType.Type == typeof(C))
.FirstOrDefault();
if (childAssociation != null)
{
var entitySet = (EntitySet<C>) childAssociation.ThisMember
.MemberAccessor
.GetBoxedValue(parent);
entitySet.Add(child);
}
}
관련 문제
- 1. 실행중인 데이터베이스를 모두 열거하십시오.
- 2. * all * hamiltonian 경로를 열거하십시오.
- 3. Plist에서 위도와 경도를 열거하십시오.
- 4. 드라이버를 사용하여 COM 포트를 열거하십시오.
- 5. 레일에서 모델의 모든 필드를 열거하십시오.
- 6. DTO 엔터티 - 엔터티 프레임 워크
- 7. jquery - 특정 자식을 제외한 요소와 모든 자식을 선택하는 방법
- 8. 엑셀 통합 문서의 시트에서 쿼리를 열거하십시오.
- 9. 설치된 사운드 드라이버에 대한 레지스트리를 열거하십시오. vb6
- 10. Simulink에서 블록의 inport 및 outports를 열거하십시오.
- 11. FreeBSD에서 IP가있는 모든 네트워크 인터페이스를 열거하십시오.
- 12. 단계에서 모든 n-gram 서브 워드를 열거하십시오.
- 13. Android : 시스템의 모든 잠에서 깨우기 잠금을 열거하십시오.
- 14. 응용 프로그램에서 만든 모든 창을 열거하십시오.
- 15. 외부 응용 프로그램에서 브라우저 탭을 열거하십시오.
- 16. .Net에서 사용 가능한 SQL Server를 열거하십시오.
- 17. vb.net/pinvoke : 특정 프로세스 창을 열거하십시오.
- 18. XML 자식을 동적으로 검색
- 19. simplexml에서 자식을 반환하지 않습니다
- 20. TabNavigator가 자식을 표시하지 않습니다.
- 21. 자식을 자식에서 제거하는 중
- 22. 캐싱 엔터티 프레임 워크 엔터티 유형
- 23. 엔터티 확장하기
- 24. 두 리포지토리로 자식을 처리하는 방법
- 25. JavaScript로 요소 자식을 가리키는 방법
- 26. Y를 조상으로 바꾸는 자식을 병합합니다.
- 27. 자식을 반복하고 각각을 표시합니다. as3
- 28. 자식을 제거하고 파일을 제거하는 것
- 29. stackpanel 여분의 자식을 잘라 내기
- 30. Actionscript 3 포인트에서 자식을 제거
예, 그게 내가 바라는 것이고, 그 방향을 가리켜 주셔서 감사합니다. 내 목표는 자식 엔티티와 부모를 모두 가져 와서 적절한 엔티티 집합으로 "ThisMember"를 캐스팅하고 그 유형에 상관없이 거기에 자식을 추가하는 메서드를 만드는 것입니다. 그걸 도와 줄 수있어? 귀하의 방법은 확실히 올바른 단계입니다. – Victor
이 방법은 연결이 끊어진 항목에서도 작동합니다. – Victor