请原谅任何天真,我是 C# 世界的新手。如果我遗漏了有用的信息,请告诉我。
我正在为 Dynamics CRM 2011 的客户门户构建一个自定义 SiteMapProvider。首先我初始化一个数组:
public Adx_webpage[] WebPages;
这样就被填充了:
public MyProvider()
{
WebPages = (FROM p in CrmContext.Adx_webpageSet WHERE p.Adx_HiddenFromSitemap != true SELECT p).ToArray();
}
后来,我尝试像这样查询 WebPages[]:
Adx_webpage[] childPages = (FROM p in WebPages WHERE p.adx_parentpageid.Id == page.Id SELECT p).ToArray();
当我通过调试器运行它时,我得到一个 NullReferenceException,它指向我的 WHERE 子句中的条件,说 p.adx_parentpageid.Id 为空,这对于网站的主页是正确的。这导致了一个问题:
为什么这个查询会在我的查询中显示主页p
?我有什么误解?