2
を反復するときDbcontextは、だから私は、私は私のDBからフェッチし、ループ内でそれらを一つずつフェッチすることによって、新しいリストに項目を追加するリストをitterateしたい配置された:結果のリスト
List<BasketItem> items = ps.basketRepo.GetUserItems(User.Identity.GetUserId()).ToList<BasketItem>();
List<BasketVM> vms = new List<BasketVM>();
foreach (BasketItem item in items)
{
BasketVM vm = new BasketVM();
vm.CoreItem = item;
vm.ItemToestel = ps.ToestelRepo.GetByID(item.BesteldToestelId);
vms.Add(vm);
}
return View(vms.ToList<BasketVM>());
この結果をエラーに "DbContextが破棄されたため、操作を完了できません。"
これを回避する方法はありますか? 、私はまた、一度に余分なオブジェクトを取得するには、このように私のLINQクエリに()を含め使用してみました:
using (context)
{
var query = (from b in context.BasketItem.Include(t=>t.SelectedToestel) where b.UserId==uId select b);
return query.ToList<BasketItem>();
}
しかし、それは働いていない、私はのためのBasketItem & Toestelテーブル間の外部キーを設定する必要がありますこれはうまくいく?
おかげ
編集:ここで私はスコープの外に行くときのコンテキストを配置文を使用してでDbcontextにアクセスしていた私のリポジトリに関与モデル
public class BasketItem
{
public int Id { get; set; }
public DateTime Timestamp { get; set; }
public Toestel SelectedToestel { get; set; }
public int BesteldToestelId { get; set; }
public int Aantal { get; set; }
public String UserId { get; set; }
}
public class Toestel
{
public int Id { get; set; }
public string Naam { get; set; }
public string Omschrijving { get; set; }
public double AankoopPrijs { get; set; }
public double HuurPrijs { get; set; }
public int Stock { get; set; }
public string Afbeelding { get; set; }
public List<OS> Os { get; set; }
public List<Framework> Framework{ get; set; }
}
はい、ナビゲーションプロパティがあります。 'BasketItem'と' Toestel'のモデルを表示します –
スティーブンス、私はモデルを編集に追加しました – PabloDegryse
'ps.basketRepo.GetUserItems'メソッドを表示してください。 – Yogi