ASP.NET MVC3 응용 프로그램에서 작업하고 있습니다. 메서드에서 호출 한 곳에서 제공하는 ID를 가진 엔티티 만 반환하는 메서드를 내 서비스에서 만들고 싶습니다. DocumentService
라고 내 서비스에서리포지토리 패턴을 사용하여 서비스에서 ID로 선택된 단일 엔터티를 반환합니다.
나는 다음과 같은 간단한 방법을 썼다 :
public Documents GetDocById(long id)
{
return DocumentsRepository.All().Where(d => d.Id == id);
}
나는 내가 엔티티의 유형으로 메서드의 반환 형식을 설정해야 결정 단일 엔티티를 원하기 때문에 Documents
이라고합니다. 나는이 코드를 얻을 오류 :
Cannot implicitly convert type "System.Linq.IQueryable<DataAccess.Documents> to DataAccess.Documents.
을 그리고 그 논리입니다. 그러나 내가 그것을 내가 원하는 형식으로 변형시키기 위해 무엇을해야하는지 생각하면 나는 스스로를 의문시하고있다. 예를 들어, 메서드의 반환 형식을 List<Documents>
으로 바꾼 다음 return 문 끝에 ToList()
을 추가 할 수 있습니다. 하지만 나는리스트를 기대하지 않고있다. 레코드리스트가 아니라 하나의 레코드 만 기대하고있다.
그래서 거기에 방법이 있으며, 내가 지금 생각할 수있는 항목 하나가있는 목록 대신 하나의 항목 만 반환하려면 어떻게해야합니까?
'SingleOrDefault'는 엔티티에 대한 linq에는 사용할 수 없습니다. –
@ KlausByskovPedersen 감사하지만 afaik 그것은 .net 4에서 지원됩니까? – daryal
당신이 'Where'를 건너 뛰었던 유일한 사람이기 때문에 +1) – jgauffin