2016-10-31 3 views
1

以下のコードは動作します。私のOne Repository内のすべてのアイテムのリストを取得します。指定されたインクルードパスが無効です。 EntityTypeは名前付きナビゲーションプロパティを宣言しません

私が2番目のテーブルを追加してそのテーブルからすべてのアイテムを引き出すと、次のエラーが表示されます。私のDataTwoでは、最初のものが全く同じようにプログラムされているので、なぜこのエラーが発生しているのかわかりません。

「指定したパスが有効ではありません含める。EntityTypeは、名前のナビゲーションプロパティを宣言していない」

ビューモデル

public IList<OneVM> Ones { get; set; } 
public IList<TwoVM> Twos { get; set; } 
public ViewModelVM() 
{ 
    this.Ones = new List<OneVM>(); 
    this.Twos = new List<TwoVM>(); 
} 

(コントローラ)の下にワーキングオリジナルコード

public ActionResult Directory() 
{ 
    var vm = new ViewModelVM(); 
    var datas = _OneRepository.GetData(); 
    vm.Datas = _mapper.Map<IList<DataVM>>(datas.OrderBy(i => i.Name)); 
    return View(vm); 
} 

希望B (コントローラ)

public ActionResult Directory() 
    { 
var vm = new FormDirectoryVM(); 
      var datas = _OneRepository.GetData(); 
      var datasTwo= _TwoRepository.GetMoreData(); 
      vm.Datas = _mapper.Map<IList<DataVM>>(datas.OrderBy(i => i.Name)); 
     return View(vm); 
      vm.DatasTwo= _mapper.Map<IList<DataTwoVM>>(datasTwo); 
return View(vm); 
} 
+0

'_OneRepository.GetData()AsEnumerable()の連結方式(_TwoRepository.GetMoreData());。。' – haim770

+0

私はこれが私に同じエラーを与えて怖いです。 – BlowFish

答えて

1

問題は私のリポジトリでした。私は、必要ではないものを含めていました。

public IEnumerable<Two> GetMoreData() 
     { 
      return _context.Twos 
       .Include(i => i.Title) // I don't need this line 
       .Include(i => i.Description) // I don't need this line either 
       .Include(i => i.Keywords) 
       .Include(j => j.Text) // Or this Line 
       .Where(i => !i.IsDeleted) 
      ; 
     } 
関連する問題