2017-10-12 5 views
0

入れ子コレクションモデルを作成するうまい方法を見つけようとしています。私は私のビューモデルに次のようなことがあります。入れ子になったICollectionをviewmodel内に埋め込みます

public class ListViewModel 
{ 
    public ICollection<Wish> Wishes { get; set; } 
} 

ウィッシュモデルは次のようになります。

public class Wish 
{  
    public ICollection<Image> Images { get; set; } 
} 

は今私のコントローラで、私もそれに対応する画像と、それぞれの願いを移入希望とListViewModelを移入します。私がこれまで持っているもの:

public IActionResult Index() 
{ 
    ICollection wishes = _repoWish.GetAllAsync().Result; 
    ICollection images = _repoImage.GetAllAsync().Result; 

    var model = new ListViewModel 
    { 
     Wishes = wishes 
    }; 
    return View(model); 
} 

を私はのforeach文をたくさん作ることができます知っているが、私はそれに対応する画像と、それぞれの願いを移入するためにLINQを使用することにしたいです。

**私は、欲望と同じ方法ですべての画像を取得することを可能にする汎用リポジトリクラスを持っています。

***リポジトリをコンテキストと考えてください。 ので、代わりの_repoWishと_repoImageそのwishContextとimageContext

私は関連エンティティをロードするにはEntity Frameworkのコア

+0

'_repoWish.GetAllAsync().'は何を返しますか?どのように 'Image'エンティティと' Wish'エンティティがその結果セットに結びついていますか? – Shyju

+0

あなたの希望はあなたのデータベースからの画像で来ないのですか? – Zinov

+0

ビューモデルを使用している場合は、ループまたは 'linq'が必要です(https://stackoverflow.com/questions/11064316/what-is-viewmodel-in-mvc)。現在のコードに何が間違っていますか? – adiga

答えて

3

ASP.NETコア2.0を使用しています、あなたが明示的にIncludeメソッド呼び出しを使用する必要がありますWishesコレクションを照会すると、Imagesプロパティが読み込まれます。

awaitasyncもお電話ください。

var wishesWithImages = await yourDbContext.Wishes 
              .Include(g => g.Images) 
              .ToListAsync(); 

変数wishesWithImagesは、画像プロパティがロードされたとWishオブジェクトのコレクションになります。これを使用して、ビューモデルを作成することができます。

var vm = new ListViewModel { Wishes = wishesWithImages }; 

タイプImages今日のよう

public class Wish 
{ 
    public int Id { set;get;} 
    public ICollection<Image> Images { set;get;} 
} 
public class Image 
{ 
    public int Id { set;get;} 
    public int WishId { set;get;} 
    public virtual Image Image{ set;get;} 
} 

のコレクションプロパティを持っているあなたのWishエンティティは、エンティティフレームワークのコアはEF6の軽量バージョンであり、自動的にEFからのすべての機能を継承していないと仮定すると、 6.遅延ロードはEFコアではまだ実装されていません。

+0

したがって、 wishesWithImagesの希望には画像が埋め込まれていますか?はい、画像にはウィッシュドがあります – Anonymous

+0

はい。 wishesWithImagesは、Wishes with Imagesプロパティのコレクションです。 – Shyju

関連する問題