C# 将t-sql查询转换为linq
我有这个t-sql查询,需要将其转换为linqC# 将t-sql查询转换为linq,c#,sql,linq,tsql,sql-to-linq-conversion,C#,Sql,Linq,Tsql,Sql To Linq Conversion,我有这个t-sql查询,需要将其转换为linq SELECT m.field1 FROM table1 m Join table2 v on v.field1 = m.field1 and v.field2 = m.field3 WHERE v.field4 =4 AND m.field1=125325 AND m.field5=0 AND m.fiel
SELECT m.field1
FROM table1 m
Join table2 v on v.field1 = m.field1 and v.field2 = m.field3
WHERE v.field4 =4
AND m.field1=125325
AND m.field5=0
AND m.field1 IN (SELECT field1 FROM table3)
有什么帮助吗?只要所有的表都是相关的,并且您不需要在LINQ中执行,因此它将类似于:
var result = db.table1.WHERE(p=>p.table2.field4 == 4 && p.field1 == 125325
&& p.field5 == 0 && p.table3 != null)
其中db
-是您的DbContext
或ObjectContext
查询:
from m in db.table1
join v in db.table2
on new { m.field1, Field2 = m.field2 }
equals new { v.field1, Field2 = m.field3 }
where ...
where db.table3.Select(x => x.field1).Contains(m.field1)
select m.field1;
方法链:
db.table1
.Join(
db.table2,
m => new {m.field1, Field2 = m.field2},
v => new {v.field1, Field2 = m.field3},
(m, v) => new {m, v})
.Where(...)
.Where(t => db.table3.Select(x => x.field1).Contains(t.m.field1))
.Select(t => t.m.field1);
table1
和table3
相关吗?可能重复:是的,table1和table3相关。大卫,是什么阻止了[in]。你需要什么味道的LINQ?我们是在说.net吗?如果是vb或c#?