私は次のアクションメソッドを持っています:-
public ActionResult Index(string searchTerm=null, int page = 1)
{
var racks = repository.AllFindRacks(searchTerm).OrderBy(a=>a.Technology.Tag).ToPagedList(page, 5) ;
if (Request.IsAjaxRequest())
{
return PartialView("_RackTable", racks);
}
return View(racks);
}
そして、次のリポジトリメソッド:-
public IQueryable<RackJoin> AllFindRacks(string q)
{
List<RackJoin> rakjoin = new List<RackJoin>();
var result = from rack in tms.TMSRacks
.Include(rack => rack.DataCenter)
.Include(rack => rack.Zone)
.Include(rack => rack.TMSFirewalls)
.Include(rack => rack.TMsRouters)
.Include(rack => rack.TMSServers)
.Include(rack => rack.TMSStorageDevices)
.Include(rack => rack.TMSSwitches)
.Include(rack => rack.Technology)
join resource in entities.Resources
.Include(a => a.ComponentDefinition)
.Include(a => a.ResourceLocation.SiteDefinition.SDOrganization)
.Include(a => a.ResourceLocation.SiteDefinition.AccountDefinition.SDOrganization)
on rack.Technology.IT360ID equals resource.RESOURCEID
where (q == null || rack.Technology.Tag.ToUpper().StartsWith(q.ToUpper()))
select new RackJoin {
Rack = rack,
Resource = resource,
Customer = resource.ResourceLocation.SiteDefinition.AccountDefinition.SDOrganization,
Site = resource.ResourceLocation.SiteDefinition.AccountDefinition.SDOrganization,
Technology = rack.Technology
};
return result;
}
しかし、アクションメソッドを呼び出すと、次の例外が発生します:-
System.NotSupportedException はユーザー コードによって処理されませんでした
。HResult=-2146233067 Message=指定された LINQ 式には、異なるコンテキストに関連付けられているクエリへの参照が含まれています。
ソース = System.Data.Entity スタック トレース: