c# - 如何使用 LLBLGen 连接具有条件的表?

标签 c# sql sql-server llblgenpro

我有以下返回我想要的结果类型的 Sql 查询:

SELECT b.ID, a.Name, b.Col2, b.COl3
FROM Table1 a
LEFT OUTER JOIN Table2 b on b.Col4 = a.ID AND b.Col5 = 'test'

本质上,我想要的行数等于 Table1 (a),同时列出 Table2 (b) 中的数据,或者如果条件“测试”在 Table2 中不存在,则为 NULL。

我是 LLBLGen 的新手,尝试了一些方法但没有用。如果条件存在,我可以让它工作;然而,当需求发生变化并导致我将查询重写为上面的查询时,我不知所措。

下面是适用于现有产品但不适用于上述查询的旧 LLBLGen C# 代码:

LookupTable2Collection table2col = new LookupTable2Collection();

RelationCollection relationships = new RelationCollection();
relationships.Add(LookupTable2Entity.Relations.LookupTable1EntityUsingTable1ID, JoinHint.Left);

IPredicateExpression filter = new PredicateExpression();
filter.Add(new FieldCompareValuePredicate(LookupTable2Fields.Col5, ComparisonOperator.Equal, "test"));

table2col.GetMulti(filter, relationships);

表 1 中有 3 条记录。即使表 2 中的所有项目都为 NULL,我也需要返回 3 条记录,因为条件不存在。有什么想法吗?

最佳答案

您必须像这样将过滤器添加到关系连接中:

relationships.Add(LookupTable2Entity.Relations.LookupTable1EntityUsingTable1ID, JoinHint.Left).CustomFilter = new FieldCompareValuePredicate(LookupTable2Fields.Col5, ComparisonOperator.Equal, "test");

关于c# - 如何使用 LLBLGen 连接具有条件的表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/701035/

相关文章:

c# - msg : 6528, 在数据库 'XYZCLRDatabase' 的 SQL 目录中找不到程序集 'XYZ'

c# - 如何为 Twitter 更新编码变音符号?

c# - 使用新值更新现有对象

mysql - RMySQL : SQL Syntax error unidentifiable

mysql - 如何在此查询中求和 m1 和 m2

mysql - 两列 SQL 中出现频率最高的值

c# - 有没有办法在 .net 核心服务和遗留 .net 框架代码之间共享 DTO 模型?

c# - MVVM 模式中的 WPF DataBinding ListBox

mysql - 这两个查询之间的性能差异有多大?

c# - ExecuteNonQuery() 并设置 NOCOUNT ON