カテゴリ別に記事を取得する次のLLBLGenコードがあります。基本的には、記事が削除対象としてマークされていない記事テーブルから選択し、ArticleTopicCategoryテーブルに参加して、特定のカテゴリ(category ='string')を取得します。
ArticleCollection articles = new ArticleCollection();
IPredicateExpression articlesFilter = new PredicateExpression();
articlesFilter.Add(ArticleFields.IsFlaggedForDeletion != true);
PrefetchPath prefetchTopic = new PrefetchPath(EntityType.ArticleEntity);
prefetchTopic.Add(ArticleEntity.PrefetchPathTopic);
prefetchTopic.Add(ArticleEntity.PrefetchPathArticleTopicCategories).SubPath.Add(ArticleTopicCategoryEntity.PrefetchPathTopicCategory);
articles.GetMulti(articlesFilter, prefetchTopic);
1対多で、Id、OrganizationId、ArticleIdを含むSuppressedArticleという名前の別のテーブルを追加しました。理論では、記事は複数のWebサイトにシンジケートされているため、「WebサイトA」が「ArticleA」を公開したくない場合は、それを抑制できます。つまり、SuppressedArticleテーブルにレコードを挿入できます。
記事の管理画面で、次の2つの条件で左結合を追加して、記事を抑制/抑制解除するためのリンクボタンを追加したいと思います。
左結合SuppressedArticleon(Article.Id =SuppressedArticle.articleIdおよびSuppressedArticle.organizationId='CC177558-85CC-45CC-B4E6-805BDD1EECCC')
このように複数結合を追加しようとしましたが、キャスト/変換エラーが発生しました:
「タイプ'SD.LLBLGen.Pro.ORMSupportClasses.FieldCompareValuePredicate'を'SD.LLBLGen.Pro.ORMSupportClasses.IPredicateExpression'に暗黙的に変換できません。明示的な変換が存在します(キャストがありませんか?)」
IRelationCollection relations = new RelationCollection();
relations.Add(ArticleEntity.Relations.SuppressedArticleEntityUsingArticleId, JoinHint.Left).CustomFilter = new FieldCompareValuePredicate(SuppressedArticleFields.OrganizationId, ComparisonOperator.Equal, this.CurrentIdentity.OrganizationId);
どんな助けでも大歓迎です!