我有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;}
}
Run Code Online (Sandbox Code Playgroud)
我在从网站上删除WebsitePage时遇到问题.特别是从mutliple网站删除WebsitePage时.
例如,我可能有这样的代码:
var pageToRemove = db.WebsitePages.FirstOrDefault();
var websites = db.Websites.Include(i => i.WebsitePages).ToList();
foreach(var website in websites)
{
website.WebsitePages.Remove(pageToRemove)
}
Run Code Online (Sandbox Code Playgroud)
如果每个网站Include()2k页,你可以想象加载第二行需要很长时间.
但是如果我Include()在获取网站时没有使用WebsitePages,则没有加载子集合供我删除.
我试图只Include()删除我需要删除的页面,但当然保存时会给我一个空集合.
有没有推荐或更好的方法来解决这个问题?
我正在使用现有的MVC站点,除非绝对必要,否则我不想为连接表创建实体类.