用多个表where子句连接多个表

本文关键字:连接 子句 where | 更新日期: 2023-09-27 18:10:45

我有一个类似这样的查询。

Select a.*
from table1 a
inner join table2 b on a.field1 = b.field1
inner join table3 c on b.field2 = c.field2
where b.field4 = beta and c.field5 = gamma.

在LINQ上,我尝试这样做:

var query = (from a in table1
             join b in table2 on a["field1"] equals b["field1"]
             join c in table3 on b["field2"] equals c["field2"]
             where (b["field4"] == beta && c["field5"] == gamma)
             select a).ToList();

但是由于某种原因,当我尝试这样做时,我得到一个错误,说实体"table2"没有字段Name ="field5",就像where子句是关于最后一个连接表和其他表不可访问一样。此外,编译器似乎也没有注意到,因为它允许我在没有警告的情况下编写c["field5"] == gamma。

任何想法?我写错了吗?

谢谢

用多个表where子句连接多个表

查看这些链接:
如何:执行内部连接(c#编程指南)
linq to sql内部连接的语法是什么?
为什么不在数据库中创建视图,然后在LINQ中从视图中选择数据?