0

答えが見つからなかったので、質問します...お手数をおかけして申し訳ありません。

次のような Article クラスでコードを最初に使用します

public class Article
{
    ...
    public virtual ICollection<Photos> Images { get; set; }
    ...
}
public class Photo
{
   ...
   public string Location {get;set;}  //can be home, work or anything
   ...
}

さて、HomeController で、すべての記事を取得して実行します

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

そして、ビューでは

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

そのすべてがうまく機能します。私がやりたいことは、各記事の ICollection から location=="home" (たとえば) を持つ 1 つの画像を取得することです。それをしようとすると、「他のダイナミックでタイプダイナミックのリクエストを実行できません」、「データリーダーはまだ開いています」、または「dbContextが閉じられています」などと言うフランス語でさまざまなエラーが発生します。

助けてくれてありがとう。

4

1 に答える 1

1

ビューの ViewBag.Articles に Photo エンティティが含まれていなかったと思います。写真にアクセスしようとすると、コンテキストが閉じられ、エラーが発生しました。

私の提案は次のとおりです。

コントローラーで Include を呼び出して、Photo エンティティを早期に読み込みます。

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

次に、記事を割り当てるときに ToList を呼び出します。

ViewBag.Articles = 記事.ToList();

さらに、ViewBag にデータ オブジェクトを配置する代わりに、ViewModel を使用することをお勧めします。幸運を。

于 2012-09-10T18:11:48.637 に答える