如何将一个表连接到多个表?我们可以在 SQL 中轻松完成类似的事情
SELECT p.* FROM Person.BusinessEntity AS e
INNER JOIN Person.Person AS p ON e.BusinessEntityID = p.BusinessEntityID
AND e.BusinessEntityID = p.BusinessEntityID INNER JOIN Person.BusinessEntityContact AS b
ON e.BusinessEntityID = b.BusinessEntityID AND p.BusinessEntityID = b.PersonID
提前致谢
最佳答案
通常,您只需像在 SQL 中那样堆叠连接。我看到原来的问题已经澄清了一点,复合键连接可能是必要的,所以它将是堆叠连接与复合键的组合。 Gary.S在他对原始问题的评论中注意到复合键部分的正确语法,但我在这里修改了我的答案以包括相同的复合键选择。对于常规连接,您可以使用
join … in … on … equals …
对于复合键,您使用匿名类型来包含来自两个实体的所有键列。
这是一个应该与您正在寻找的内容有关的示例
var items = from e in Person.BusinessEntity
join p in Person.Person on
e.BusinessEntityID equals p.BusinessEntityID
join b in Person.BusinessEntityContact on
new {e.BusinessEntityID, p.BusinessEntityID} equals
new { b.BusinessEntityID, b.PersonID}
select p;
您可能还需要查看 GroupJoin,您需要它才能在 LINQ 中执行左外连接。
群组加入看起来像:
join … in … on … equals … into …
大多数案例的好例子可以在 101 samples page 找到
关于c# - EF4 如何将一个表连接到两个或多个其他表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8407412/