2010-08-17 2 views
2

다음 범주로 기사를 검색하는 다음 LLBLGen 코드가 있습니다. 기본적으로 내가 다른 테이블의 이름 SuppressedArticle을 추가 한 (카테고리 = '문자열'경우)여러 개의 외부 조인 조건 LLBLGen

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); 

되는 특정 범주를 검색 할 기사가 삭제 표시되지 않은 문서 테이블에서 선택하고 ArticleTopicCategory 테이블에 합류 1 대 다수이고 Id, OrganizationId 및 ArticleId를 포함합니다. 이 이론은 기사가 여러 웹 사이트에 신디케이트되기 때문에 "웹 사이트 A"가 "기사 A"를 게시하지 않으려는 경우 SuppressionArticle 테이블에 레코드를 삽입 할 수 있습니다. 문서 관리자 화면에서

는, 내가 좋아하는 두 가지 조건을 조인 기사 억제 해제, 왼쪽을 추가하여/억제 할 수있는 링크 버튼을 추가하고 싶습니다 : (

가에 SuppressedArticle 가입 왼쪽 Article.Id = SuppressedArticle.articleId 및 SuppressedArticle.organizationId = 'CC177558-85CC-45CC-B4E6-805BDD1EECCC')는

나는 다중과 같이 결합 추가하는 시도,하지만 난/변환 오류 캐스트 :

"는 암시 적으로 형식을 변환 할 수 없습니다 '를 SD.LLBLGen.Pro.ORMSupportClasses.FieldCompareValuePredicate '를'SD.LLBLGen.Pro.ORMSupportClasses.IPredicateExp '로 설정하십시오. 레 지온 '. 명시 적 변환이!

IRelationCollection relations = new RelationCollection(); 
       relations.Add(ArticleEntity.Relations.SuppressedArticleEntityUsingArticleId, JoinHint.Left).CustomFilter = new FieldCompareValuePredicate(SuppressedArticleFields.OrganizationId, ComparisonOperator.Equal, this.CurrentIdentity.OrganizationId); 

이 어떤 도움을 크게 감상 할 수있다 "(당신은? 캐스트 누락)

답변

4

에는, customFilter 유형 IPredicateExpression이다 존재, 당신은 (유형 IPredicate의) 술어를 만들고에 할당 물론 :)

작동하지 않는 속성, 수행합니다!

IRelationCollection relations = new RelationCollection(); 
relations.Add(ArticleEntity.Relations.SuppressedArticleEntityUsingArticleId, JoinHint.Left) 
      .CustomFilter = new PredicateExpression(SuppressedArticleFields.OrganizationId == this.CurrentIdentity.OrganizationId); 
+0

감사 오티스 내가 prefetchTopic.Add으로 SuppressedArticle 테이블에 프리 페치 경로를 추가 (예술 icleEntity.PrefetchPathSuppressedArticle); 그러나 어떻게 마크 업에서 Neil

+0

페이지가 어떻게 보이는지는 잘 모르지만 datasourcecontrol을 시도 할 수 있습니다 (프리 페치 경로에서도 코드 뒤에 코드가 필요합니다). 또는 코드 뒤에 코드로 바인딩? –