2010-11-26 92 views
0

快速浏览后,我没有找到如何处理LINQ到SQL,如果我有几个嵌套的内部联接。LINQ到SQL嵌套的内部连接?

这就是想什么我有在LINQ

SELECT Booking.BookingId, Booking.EventId, Booking.StartDate, Event.Name, Person.FirstName 
FROM Booking 
    INNER JOIN Event 
     INNER JOIN Asset 
     ON Asset.AssetId = Event.AssetId 
     INNER JOIN Person 
     ON Person.PersonId = Event.ContactPersonId 
    ON Event.EventId = Booking.EventId AND Event.State = 4 

有谁知道如何把它翻译成LINQ? 谢谢。

回答

1
var q1= from a in booking,b in event,c in asset, d in person where a.eventid=b.eventid and b.state=4 and c.assetid = b.assetid and b.contactpersonid=d.personid select a,b,c,d 

你可以再更换A,B,C,d与要

列名的另一种方式是使用join关键字:

var w1= from a in booking join b in event on a.eventid equals b.eventid join c in asset on ... 
+1

谢谢,也想出了如何做到这一点,并采用了你在第二个例子中提出的方法。 – Maxim 2010-11-26 21:58:02

0
var query = from b in context.Bookings 
    from e in context.Events 
    join a in context.Assets on e.AssetId equals a.AssetId 
    join p in context.People on e.ContactPersonId equals p.PersonId 
    where e.State == (byte)States.Approved && e.EventId == b.EventId 
    select new { EventName = e.Name, BookingDate = b.StartDate };