【发布时间】:2015-08-26 00:45:50
【问题描述】:
是否可以为此查询编写 LINQ? (在 .NET 3.5 中)
select tt.id
,tt.detailscount
,ttdmx.detailorder
,ttdmx.detailtype
,ttdm1.detailorder
,ttdm1.detailtype
,ttdm2.detailorder
,ttdm2.detailtype
from test.testtable tt
left join test.testtabledetails ttdmx on tt.id = ttdmx.causeid
and tt.maxcausedetailorder = ttdmx.detailorder
left join test.testtabledetails ttdm1 on tt.id = ttdm1.causeid
and tt.maxcausedetailorder - 1 = ttdm1.detailorder
left join test.testtabledetails ttdm2 on tt.id = ttdm2.causeid
and tt.maxcausedetailorder - 2 = ttdm2.detailorder
类是这样的:
public class Test {
public int id {get;set;}
public IList<TestDetails> details {get;set}
}
和
public class TestDetails {
public int id {get;set;}
public int detailOrder {get;set;}
public int detailType {get;set;}
}
我尝试使用 queryOver,但它不能两次加入同一个属性。
【问题讨论】:
-
不清楚你在这里的意思。您是否有一个类似的内存集合要编写一个 LINQ 查询,或者您是否有兴趣编写一个可以通过某些 ORM 转换为上述 SQL 的 LINQ 表达式?
-
我想要一个可以翻译成上面SQL的LINQ表达式。
标签: c# linq entity-framework .net-3.5 left-join