1
3
您可以通过在A和B上定义接口来实现这一点。
linq-to-sql类是部分类,因此在部分类定义中,可以像这样添加接口:
如您所见,不需要实现,因为name属性是在linq to sql生成的部分中实现的。 现在,将谓词约束到实现iHasName接口的类型,您就可以设置:
现在您甚至可以像这样定义iQueryable上的扩展方法:
小警告:当然,接口(“name”)中的属性必须与实现类中的属性名完全匹配。假设您有一个具有属性“myname”的类C。您可能会尝试像这样实现iHasName接口:
这当然不起作用,因为Linq to SQL表达式分析器将使用“name”而不是实际属性“myname”,因此它将无法将此表达式映射到有效的SQL。 |
2
0
我想多想想,这是个有点愚蠢的问题。我希望能够使用更清晰的查询:
并将其应用于:
不必重复这个谓词,我在开始查询时使用它 A表:
因此,我认为解决方案是从表开始“反向”查询,如下所示:
我想它可能会无效地重写查询,但情况似乎并非如此。 |
Imad · Linq扩展方法没有使用Object类的Equals 1 年前 |
user8512043 · 根据每个元素中的数字对列表进行排序 2 年前 |
Nick Fleetwood · 调度语法的LINQ查询 2 年前 |
Asdrubal Hernandez · Linq查询特定数组索引出错 2 年前 |
Drago · Linq通过比较Id和具有Id的对象列表来查询获取列表 2 年前 |