標準のDNN 'Files'テーブルから特定の拡張子のすべてのドキュメントを取得するSQLデータソースの設定がありますが、表示するファイルのカテゴリそれについて最善の方法。私は同期済みの場合はページ設定され(上のDNNタグをユーザが選択できるようになるようにDNNのタブ/ページ分類タグ/カテゴリーで2sxcカテゴリーエンティティを同期したい2sxc | SQLデータソース - LINQフィルタクエリ
@using ToSic.Eav.DataSources
@functions
{
// Default data initialization - should be the place to write data-retrieval code
// In the future when routing & pipelines are fully implemented, this will usually be an external configuration-only system
// For now, it's done in a normal event, which is automatically called by the razor host in 2SexyContent
public override void CustomizeData()
{
var source = CreateSource<SqlDataSource>();
// source.TitleField = "EntityTitle"; // not necessary, default
// source.EntityIdField = "EntityId"; // not necessary, default
// source.ConnectionString = "..."; // not necessary, we're using the ConnectionStringName on the next line
source.ConnectionStringName = Content.ConnectionName;
// Special note: I'm not selecting * from the DB, because I'm activating JSON and want to be sure that no secret data goes out
source.SelectCommand = "Select Top 10 FileId as EntityId, FileName as EntityTitle, PublishedVersion, UniqueId, FileName, Size as Size, Extension as Extension, CreatedOnDate as Date, Folder as Folder FROM Files WHERE PortalId = @PortalId AND Extension = 'docx' OR Extension = 'xlsx' OR Extension = 'pdf'";
source.Configuration.Add("@PortalId", Dnn.Portal.PortalId.ToString());
Data.In.Add("FileList", source.Out["Default"]);
// enable publishing
Data.Publish.Enabled = true;
Data.Publish.Streams = "Default,FileList";
}
}
:以下の私の現在のSQLデータソースコードを参照してください。 2sxcカテゴリエンティティ)を使用すると、taxonomy_termsテーブルをコンテンツアイテムテーブルに結合することによって接続するSQLデータソースに基づいて、アプリケーションに特定のdoc/excel/pdfファイル(2sxc iCache経由で2sxcカテゴリに既に接続されている)を割り当てることができます次にDNNタブテーブルに接続するコンテンツアイテムタグテーブルを使用します。
LINQ/Razorコードを修正して、「サービス」カテゴリが割り当てられているファイルのみを表示するようにカテゴリをフィルタする方法を教えてください。このフィルタを使用してDNNタクソノミー用語「サービス」を使用して2sxcカテゴリ(既に2sxc iCache経由でアップロードされたAdamファイルをアップロードしている)にリンクしたいタクソノミタグ「サービス」(完全一致)を同期させますか?
@foreach (var file in AsDynamic(Data.In["FileList"]).Where(i =>
(i.Category as List<dynamic>).Any(c => c.EntityId == FileList.EntityId)))
{
<li>@file.FileName</li>
}
私はhttps://github.com/2sic/2sxc/wiki/DotNet-Query-Linq上のwikiノートを詳細に見ていると私はSQLデータソーステンプレートを使用してのforeachを使用して、カテゴリフィルタの正しい構文を得ることにこだわっています。
乾杯...
私はDnnSqlDataSourceをさらに詳しく見ていきます。 – denisjoconnor