からの値を使用して、私はContextPageIdプロパティが使用された最初のrootPageパラメータの値を取得するいくつかの理由NHibernateのは、だから、最初のクエリ
ようなクエリを持っています。
からの値を使用して、私はContextPageIdプロパティが使用された最初のrootPageパラメータの値を取得するいくつかの理由NHibernateのは、だから、最初のクエリ
ようなクエリを持っています。
私のNH 3.2はSelect
の入力から値を取得しようとすると、より簡単なクエリでは実際にはMismatchedTreeNodeException
で失敗します。どのバージョンを使用していますか?
とにかく、投影(Select
)でクエリの外からの値を使用できないように見えます。これはおそらくNHibernateのLinqの制限です。あなたのバージョンは、コンパイルされた式をSelect
からキャッシュしているようですが、変数に依存しているという事実は無視しています。 DateTime
の値はすべての呼び出しで同じですが、そうではありませんか?私はもう少し慎重に見てきたし、実際、すでに知られている、NHibernateのバグである
.Select(g => new
{
Year = g.Key.Year,
Month = g.Key.Month,
TotalPageCount = g.Count(),
PublicPageCount = g.Count(p => p.State == PageState.Public && p.Published <= DateTime.UtcNow)
})
.AsEnumerable()
.Select(g => new Archive
{
ContextPageId = rootPage.Id,
Year = g.Year,
Month = g.Month,
TotalPageCount = g.TotalPageCount,
PublicPageCount = g.PublicPageCount
})
.ToList();
EDIT:
ビットクリーナーこの問題を回避するには、次のように行くことができます。 this blog postおよびthis JIRA bug entryを参照してください。
NH版はナゲット経由でインストールされた3.2.0.4000と思われます。私はDateTimeの部分もチェックしなければならないと思います。 –
OK - NHibernateの既知のバグです。私の編集を参照してください。 – NOtherDev