Linq to SQL은 IQueryable이고 관계로 가득 찬 개체를 생성합니다.
Html 도우미는 IEnumerable<SelectListItem>
과 같은 특정 인터페이스 개체가 필요합니다.Linq to SQL, Repositories 및 Asp.Net MVC ViewData : 중복을 제거하는 방법?
내가 일어날 수 있다고 생각 :
는- 는 재사용 Linq에의 객체 즉, 추가 도메인 모델 클래스없이 SQL 오브젝트에 Linq에에서 포항 강판을 반환, 모든 수하물없이 SQL로?
- SelectListItem 열거 형과 같은 HTML 도우미 개체로 쉽게 변환되는 개체를 추출 하시겠습니까?
우려를 분리하지 않고이를 수행 할 수있는 방법이 있습니까? 요구를 연결하는 몇 가지 단서로운 트릭?
예를 들어 저장소에있는 경우 SelectListItem이 표시되지 않습니다. select new
는 짐없이 SQL로 Linq의에서 개체를 잘라 좋은 방법이지만 여전히 참조해서는 안 클래스 참조 할 것 : (당신이 ToSelectListItem을 만들 수있는이 특정 예에서
IEnumerable<SelectListItem> result = (from record in db.table
select new SelectListItem {
Selected = record.selected,
Text= record.Text,
Value= record.Value }
).AsEnumerable();
MVVM 패턴 (http://en.wikipedia.org/wiki/Model_View_ViewModel)을 사용하고 도메인 모델을 UI까지 노출시키지 않아야 할 수도 있습니다. 다음은 http://stackoverflow.com/questions/2581490/should-business-objects-beable-to-create-their-own-dtos/2581636에 대한 다소 관련있는 스레드입니다. – R0MANARMY