public IQueryable<Story> FindAllStories(){
var stories = (from s in db.Stories
orderby s.DateEntered descending
select new Story
{
Title = s.Title,
UserName = s.aspnet_User.UserName
}
);
return stories;
}
온라인으로 찾은 페이지 매기기 도우미가 필요한 항목 만 가져올 수 있도록이 항목을 IQueryable로 전달해야합니다. 문제는 런타임에 도우미가 source.Count()를 수행하려고 할 때입니다. 컴파일러는 '실체 유형 쿼리의 명시 적 생성'이기 때문에 행복한 캠핑카가 아닙니다.LINQ to SQL을 변경하여 런타임에 폭탄을 터뜨리지 않는 방법은 무엇입니까?
이 LINQ to SQL 메서드를 어떻게 변경합니까?
또한이 문제를 파악하기 위해 이전 코드가 작동하지 않는 이유는 무엇입니까? 나는이 작업을 수행하는 방법 (작동 확인)를 생각하기 시작하고있어
public IQueryable<Story> FindAllStories(){
var stories = (from s in db.Stories
orderby s.DateEntered descending
select s);
return stories;
}
업데이트는 POCO가 UserStory라는 만드는 것입니다. 새 클래스에는 Story 유형의 문자열과 다른 문자열 UserName의 두 가지 속성이 있습니다. 그런 다음 IQueryable of UserStory를 문제없이 반환 할 수 있습니다.
그게 좋습니다. 그러나 나는 아직도 그 방법이 효과가 있고 다른 것은 효과가없는 이유를 모르겠다. 다른 하나는 부분 클래스 Story에 문자열 UserName의 속성을 추가하고 레이어간에 해당 객체를 전달하는 것입니다. 차이점이 뭐야?
여기에 관해서는 알지 못하는 것이 있습니다. Story는 UserName 속성을 추가 한 부분 클래스입니다. 이제 완전히 새로운 클래스 (기사와 유사)를 만들면 : UserStory에는 2 개의 속성이 있습니다. 스토리 유형 및 문자열 UserName 내 코드가 작동합니다. 왜? 둘의 차이점은 무엇입니까? – Mike
어쩌면 그 해답은이 기사의이 주석에 있습니다. "만들려는 엔티티에 디자이너의 기본 키가 없는지 확인한 다음 잘 작동합니다." 어쩌면 클래스 자체에 기본 키가 없기 때문에 새 클래스를 만드는 방법이 작동하기 때문에 ... 스토리 유형 및 문자열 UserName이 포함되어있을 수 있습니다. 그러나 부분 클래스 Story에 문자열 UserName을 추가하면 Story에 기본 키가 있다는 것을 의미합니다. 음, 여기에서 벗어나면 확실하지 않습니다. – Mike