2012-09-10 3 views
0

나는 질문을하므로 답변을 찾지 못했습니다 ... 죄송합니다. EF5 코드 MVC4보기에서 ICollection을 처음으로 쿼리

내가 제 클래스는 HomeController에서 지금
public class Article 
{ 
    ... 
    public virtual ICollection<Photos> Images { get; set; } 
    ... 
} 
public class Photo 
{ 
    ... 
    public string Location {get;set;} //can be home, work or anything 
    ... 
} 

처럼 보이는 먼저 코드를 사용, 내가보기에, 모든 기사를 얻을 할

if(articles.Any()) 
{ 
     ViewBag.Articles = articles; 
} 

을 그리고

foreach(var article in ViewBag.Articles) 
{ 
    ... Do things working great here but... 
} 

그 모두가 훌륭합니다. 내가하고 싶은 일은 각 기사의 ICollection에서 location == "home"(예를 들어)이라는 하나의 Image를 얻는 것입니다. 그것을하려고하면 나는 "다른 동적 인 유형의 요청을 할 수 없다", "datareader가 아직 열려있다"또는 "dbContext가 닫혀있다"와 같은 것을 말하는 프랑스의 다른 오류를 얻습니다.

도움 주셔서 감사합니다.

답변

1

보기의 ViewBag.Articles에는 사진 엔티티가 포함되어 있지 않습니다. 사진에 액세스하려고하면 컨텍스트가 닫히고 오류가 발생했습니다.

나의 제안은 다음과 같습니다

전화는 초기로드 사진 엔티티 컨트롤러에 포함. 당신이 기사를 할당 할 때

http://msdn.microsoft.com/en-us/library/bb738708.aspx

그런 다음, ToList 전화 :

ViewBag.Articles = articles.ToList();

이외에도 ViewBag에 데이터 개체를 넣는 대신 ViewModel을 사용하는 것이 좋습니다. 행운을 빕니다.

+0

고맙습니다. 새로운 dbcontext를 열었지만 솔루션은 훨씬 빠르고 간단합니다. – Netah

관련 문제