1

2 つの異なるデータベースに接続されている 2 つのコンテキスト クラスを使用しています。しかし、インデックス ビューでは、両方のデータベースから情報を取得し、ページングを結合結果に適用する必要があります。そのために、次の viewModel クラスを定義します。

public class RackJoinList
{
  public IEnumerable<TMSRack> Racks { get; set; } // from the first database
  public IEnumerable<Resource> Resources { get; set; } //from the second database
}

そして、ViewMaodel オブジェクトを設定する次のリポジトリ メソッド:-

 public RackJoinList AllFindRacks_j(string q,bool forautocomplete=false)
 {
   RackJoinList rjlist = new RackJoinList();
   var racks = from rack in tms.TMSRacks.Where(
                a => a.Technology.Tag.ToUpper()
                  .StartsWith(q.ToUpper()) || (q == null)
               )
               select rack;

    rjlist.Racks = racks.ToList();
    var resources = from resource in entities.Resources
                    join c in rjlist.Racks
                    on resource.RESOURCEID equals c.Technology.IT360ID
                    select resource;
    rjlist.Resources = resources;
    return rjlist;
 }

And finally I have the following Action method:-

 public ActionResult Index(string searchTerm=null, int page = 1)
 {
   var racks = repository.AllFindRacks_j(searchTerm)
                 .OrderBy(a=>a.Technology.Tag).ToPagedList(page, 5) ;

   return View(racks);
 }

But the above action method will raise an error since I cannot apply order by and Ipagedlist to non-list object. So can anyone advice on how to solve my problem, which mainly is:-

  1. Join context classes from different databases.

  2. Apply the paging to the join results .

Thanks in adbacne for any help.

4

1 に答える 1