【发布时间】:2015-07-25 15:38:49
【问题描述】:
我有 2 节课,如下所示。
他们可以拥有非常大的收藏 - 一个网站可能有 2,000 多个网站页面,反之亦然。
class WebsitePage
{
public int ID {get;set;}
public string Title {get;set;}
public List<Website> Websites {get;set;}
}
class Website
{
public int ID {get;set;}
public string Title {get;set;}
public List<WebsitePage> WebsitePages {get;set;}
}
我在从网站中删除网站页面时遇到问题。特别是在从多个网站中删除网站页面时。
例如,我可能有这样的代码:
var pageToRemove = db.WebsitePages.FirstOrDefault();
var websites = db.Websites.Include(i => i.WebsitePages).ToList();
foreach(var website in websites)
{
website.WebsitePages.Remove(pageToRemove)
}
如果每个网站Include() 2k 页,您可以想象加载第二行需要很长时间。
但是,如果我在获取网站时不Include() 网站页面,则没有加载子集合供我删除。
我试图只Include() 我需要删除的页面,但当然在保存时会给我一个空集合。
是否有推荐或更好的方法来解决这个问题?
我正在使用现有的 MVC 站点,除非绝对必要,否则我宁愿不必create an entity class for the join table。
【问题讨论】:
-
您是否尝试过直接从 WebSitePages 对象中删除它?
标签: asp.net-mvc collections linq-to-entities