【问题标题】:Multiple Outer Join Condition LLBLGen多外连接条件 LLBLGen
【发布时间】:2011-03-31 00:43:32
【问题描述】:

我有以下按类别检索文章的 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);

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

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

left join SuppressedArticle on (Article.Id = SuppressedArticle.articleId and 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);

任何帮助将不胜感激!

【问题讨论】:

    标签: orm llblgenpro llblgen


    【解决方案1】:

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

    做:

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

    【讨论】:

    • 感谢奥的斯!我使用 prefetchTopic.Add(ArticleEntity.PrefetchPathSuppressedArticle); 将预取路径添加到 SuppressedArticle 表中。但是如何在标记中进行深度绑定,例如 ​​ton>
    • 不确定你的页面是什么样子的,但你可以试试我们的datasourcecontrol(预取路径也需要在后面的代码中添加一些代码),或者与后面的代码中的代码绑定?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-11
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 2010-11-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多