엔터티 컬렉션에 대한 IList와 IEnumerable
도메인에 항목 목록이있는 엔티티가있는 경우 ILists 또는 IEnumerables로 노출되어야합니까? 예를 들어 Order에는 많은 OrderLine이 있습니다.
IEnumerable<T>
는 (예를 들어 foreach를 사용하여) 반복 할 수있는 일련의 항목을 나타내지 만 IList<T>
추가하거나 제거 할 수있는 모음입니다.
일반적으로 OrderLine을 추가하거나 제거하여 Order를 수정할 수 있으므로 Order.Lines가 IList<OrderLine>
.
그러나 프레임 워크 디자인 결정을 내려야합니다. 예를 들어, 동일한 OrderLine 인스턴스를 두 개의 다른 주문에 추가 할 수 있어야합니까? 아마 아닙니다. 따라서 OrderLine을 주문에 추가해야하는지 여부를 검증 할 수있게하려면 실제로 Lines 특성을으로 만 표시 IEnumerable<OrderLine>
하고 처리 할 수있는 Add (OrderLine) 및 Remove (OrderLine) 메소드를 제공 할 수 있습니다. 그 유효성 검사.
IEnumerable에는 Count 메서드가 없으며 인덱스를 통해 컬렉션에 액세스 할 수 없기 때문에 IEnumerable을 통해 IList를 사용하는 대부분의 시간이 있습니다 (LINQ를 사용하는 경우 확장 메서드 로이 문제를 해결할 수는 있지만).
참고 URL : https://stackoverflow.com/questions/376708/ilist-vs-ienumerable-for-collections-on-entities
'development' 카테고리의 다른 글
C # var 키워드와 동일한 VB.NET (0) | 2020.06.17 |
---|---|
PHP를위한 최고의 XML 파서 (0) | 2020.06.17 |
'float'vs. 'double'정밀도 (0) | 2020.06.17 |
AngularJS $ resource RESTful 예제 (0) | 2020.06.17 |
C # 빌드 머신을 어떻게 그리고 왜 설정합니까? (0) | 2020.06.17 |