Orm 多重外部连接条件LLBLGen

Orm 多重外部连接条件LLBLGen,orm,llblgenpro,llblgen,Orm,Llblgenpro,Llblgen,我有以下按类别检索文章的LLBLGen代码。本质上,它是从没有标记要删除的项目的项目表中进行选择,并在ArticleTopicCategory表上联接以检索特定的类别(其中category='string') 我添加了另一个名为SuppressedArticle的表,它是一个1对多的表,包含Id、OrganizationId和ArticleId。理论是,由于文章被联合到多个网站,如果“网站A”不想发布“文章A”,他们可以将其隐藏,即在SuppressedArticle表中插入一条记录 在文章管理

我有以下按类别检索文章的LLBLGen代码。本质上,它是从没有标记要删除的项目的项目表中进行选择,并在ArticleTopicCategory表上联接以检索特定的类别(其中category='string')

我添加了另一个名为SuppressedArticle的表,它是一个1对多的表,包含Id、OrganizationId和ArticleId。理论是,由于文章被联合到多个网站,如果“网站A”不想发布“文章A”,他们可以将其隐藏,即在SuppressedArticle表中插入一条记录

在文章管理屏幕上,我想添加一个链接按钮来抑制/取消抑制文章,方法是添加一个具有以下两个条件的左连接:

左连接SuppressedArticle on(Article.Id=SuppressedArticle.Article Id和SuppressedArticle.organizationId='CC177558-85CC-45CC-B4E6-805BDD1EEECCC')

我尝试像这样添加多个联接,但出现了强制转换/转换错误:

“无法将类型'SD.LLBLGen.Pro.ORMSupportClasses.FieldCompareValuePredicate'隐式转换为'SD.LLBLGen.Pro.ORMSupportClasses.IPredicateExpression'。存在显式转换(是否缺少强制转换?)”


任何帮助都将不胜感激

CustomFilter的类型为IPredicateExpression,您可以创建一个谓词(类型为IPredicate)并将其分配给该属性,这当然不起作用:)

做:


谢谢你,奥蒂斯!我使用prefetchTopic.Add(ArticleEntity.PrefetchPathSuppressedArticle)将预回迁路径添加到SuppressedArticle表中;但是我如何在标记中进行深度绑定,例如不确定页面的外观,但您可以尝试我们的datasourcecontrol(预取路径也需要代码隐藏中的一些代码),或者使用代码隐藏中的代码进行绑定?
   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);
IRelationCollection relations = new RelationCollection();
                relations.Add(ArticleEntity.Relations.SuppressedArticleEntityUsingArticleId, JoinHint.Left).CustomFilter = new FieldCompareValuePredicate(SuppressedArticleFields.OrganizationId, ComparisonOperator.Equal, this.CurrentIdentity.OrganizationId);
IRelationCollection relations = new RelationCollection();
relations.Add(ArticleEntity.Relations.SuppressedArticleEntityUsingArticleId, JoinHint.Left)
             .CustomFilter = new PredicateExpression(SuppressedArticleFields.OrganizationId == this.CurrentIdentity.OrganizationId);