我需要1个表中的字段,而不是1个属性匹配另一个表中的行。 我可以写在SQL这个查询与子查询这样:如何返回LINQ中依赖联接/子查询的表?
SELECT *
FROM Table1
WHERE Property1 IN
(
SELECT Property1
FROM Table2
WHERE Property0 = 1
)
但我读here,它是那么复杂,也很容易用一个连接来写,我做到了。但是,到目前为止,我无法仅返回Table1,因为我使用了一个连接,如果我没有弄错,需要我创建这个匿名类型,如下所示。我在这里所做的工作(我创建了另一个具有Table1相同属性的对象),但我不禁想到有更好的方法来做到这一点。
Table1.Join(Table2, t1 => t1.Property1, t2 => t2.Property1, (t1, t2) => new
{
t1.Property1,
t1.Property2,
t1.Property3
})
.Select(ob => new UnnecessaryObject
{
Property1 = ob.Property1,
Property2 = ob.Property2,
Property3 = ob.Property3
}
我也试过只是创造的。选择部分表1,但我没有被允许大约明确建设一个错误。
只是为了澄清,我希望能够返回Table类型的IQueryable,它似乎我应该能够做到而不必创建UnnecessaryObject ...但我仍然很新LINQ,所以我会很感激你能提供的任何帮助。提前致谢。
工作太棒了!非常感谢! – Andy 2010-07-14 14:09:11