我在ASP.NET MVC 5中創建一個Web應用程序,並需要使用數據庫獲取一些數據。一旦獲得數據,我想創建一個使用它的IPagedList
對象。但是,我發現這個功能會產生一個異常,說明Type CurrentSite is not supported in LINQ to Entities
。相反,僅在獲取數據並且不創建IPagedList時纔會發生這種情況。如何在創建IPagedList時防止「LINQ to Entities不支持」異常?
public ActionResult GetComputers(int? SiteID)
{
//This works
IQueryable<Computer> computers = db.Computers.Where(c => c.CurrentSite.ID == SiteID);
//This doesn't - It throws the LINQ to Entities exception
IPagedList<Computer> computers = db.Computers.Where(c => c.CurrentSite.ID == SiteID).ToPagedList(1, 25);
}
如何創建使用所獲得的數據,而無需添加CurrentSite
列到我的數據庫表中的IPagedList
對象?
更新: 這是邏輯CurrentSite
屬性的邏輯。
public ComputerSites CurrentDeployment
{
get
{
if (this.ComputerSites == null)
{
return null;
}
else
{
return this.ComputerSites.Where(cs => DateTime.Now.IsBetween(cs.StartDate, cs.EndDate) && cs.Deleted == false).OrderBy(cs => cs.StartDate).FirstOrDefault();
}
}
}
public Site CurrentSite
{
get
{
if (this.CurrentDeployment == null)
{
return null;
}
else
{
return this.CurrentDeployment.Site;
}
}
}
您的IPagedList從哪裏來? – TGlatzer
'db.Computers.Where(c => c.CurrentSite.ID == SiteID).ToList();'工作嗎? –
@AdilMammadov我只是試過這個,並得到相同的錯誤,即使在訂購查詢時。 – Ben