カスタムフィールド「NewsDate」(DateTimeField)と「Active」(BooleanField)を持つコンテンツタイプ「News」があります
今、私はNewsDateまでに3つのアクティブなatimes注文説明を取得する必要があります
すべてのニュースを入手し、それらをtoList()にして、そこからデータを操作することは解決策ではありません。
PS私は次のようなことをする必要があります:
var items = contentManager
.Query(Entities[PageType.Press])
.OrderByDescending<CommonPartRecord, DateTime?>(record => record.PublishedUtc)
.Slice(0, 3);
ただし、PublishedUTCの代わりに、カスタムフィールド "NewsDate"を使用して、Active == trueを追加します。ただし、カスタムデータをXMLデータとして別のフィールドに格納するOrchardアーキテクチャのため、これは不可能です。
更新: 一言で言えば、次のクエリの背後にあるコードから生成したいと思います:
DECLARE @temp as TABLE(id int, xmldata xml)
INSERT @temp VALUES(1,'<Data><News><NewsDate>07/14/2011 11:42:00</NewsDate><Link Title="" DisplayText="" Link="www.example.com" OpenInNewTab="True">www.example.com</Link></News></Data>')
INSERT @temp VALUES(2,'<Data><News><NewsDate>07/11/2011 12:11:00</NewsDate><Link Title="" DisplayText="" Link="www.example.com" OpenInNewTab="True">www.example.com</Link></News></Data>')
INSERT @temp VALUES(3,'<Data><News><NewsDate>02/21/2012 16:56:00</NewsDate><Link Title="" DisplayText="" Link="www.example.com" OpenInNewTab="True">www.example.com</Link><NewsLink></NewsLink></News></Data>')
SELECT
TOP 3 [id],
[xmldata].value('(Data/News/NewsDate)[1]', 'datetime') as NewsDate
FROM @temp
ORDER BY NewsDate DESC
PS DynamicContentQueryTestsのコードを調べましたが、すべての例でPartを使用しています。私の場合、FieldsはContentItemに含まれています。たとえば、NewsコンテンツタイプにはNewsDateフィールド(datetimeフィールド)と一部のパーツが含まれています。
どんな提案でも大歓迎です。