私はまだLINQとエンティティframweworkにあまり精通していません。
データベースからサイトマップを取得してXMLに書き込む必要があります。
主な問題は、次のコードでサブクエリが何も表示しないことです。
var pages = (from p in ctx.CMSPages2
where p.MenuID == num && p.ParentID == 0
select new
{
URLLevel1 = p.KeywordUrl + "/" + p.FriendlyUrl,
TitleLevel1 = p.LinkTitle,
Level2 = from q in ctx.CMSPages2
where q.ParentID == p.SitemapExternID
select new
{
URLLevel2 = q.KeywordUrl + "/" + q.FriendlyUrl,
TitleLevel2 = q.LinkTitle,
}
}).ToArray();
何か案は?
アップデート:
ナビゲーションプロパティ(CMSPages2_1)を使用すると、次のようなトリックが実行されました。
var pages = (from p in ctx.CMSPages2
where p.MenuID == num && p.ParentID == 0
select new
{
URLLevel1 = p.KeywordUrl + "/" + p.FriendlyUrl,
TitleLevel1 = p.LinkTitle,
Level2 = (from o in p.CMSPages2_1
where o.ParentID == p.SitemapExternID
select new
{
URLLevel2 = o.KeywordUrl + "/" + o.FriendlyUrl,
TitleLevel2 = o.LinkTitle,
})
}).ToArray();