2010-11-26 20 views
0

私はいくつかのネストされた内部結合を持っている場合、私はlinqをsqlに対処する方法を見つけませんでした。linqからsqlへのネストされた内部結合?

私は誰がLINQにそれを変換する方法を知ってい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 

にしたいのですが何ですか?おかげさまで

答えて

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 

あなたは別の方法で参加するキーワードを使用することです

をしたい列名と、その後で、B、C、Dを置き換えることができます。

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

ありがとうございました、 2番目の例で示唆したように、それを行う方法を理解し、アプローチを使用しました。 – Maxim

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 }; 
関連する問題