![]() |
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表:
因此,我认为解决方案是从表开始“反向”查询,如下所示:
我想它可能会无效地重写查询,但情况似乎并非如此。 |
![]() |
A B · C#Excel自动调整列避免长文本时出错 4 月前 |
![]() |
pseudodev · 失败的测试仅显示堆栈跟踪,不显示完整日志 5 月前 |
![]() |
CactusCake · if语句中应有分号 6 月前 |
![]() |
Bin4ry · 子文件夹中的应用程序设置 6 月前 |