2

カテゴリ別に記事を取得する次の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);

どんな助けでも大歓迎です!

4

1 に答える 1

3

CustomFilterはタイプIPredicateExpressionであり、(タイプIPredicateの)述語を作成し、それをそのプロパティに割り当てますが、もちろん機能しません:)

行う:

IRelationCollection relations = new RelationCollection();
relations.Add(ArticleEntity.Relations.SuppressedArticleEntityUsingArticleId, JoinHint.Left)
             .CustomFilter = new PredicateExpression(SuppressedArticleFields.OrganizationId == this.CurrentIdentity.OrganizationId);
于 2010-08-17T16:25:33.897 に答える