Вложенные внутренние объединения в linq to sql? - PullRequest
0 голосов
/ 27 ноября 2010

После быстрого обзора я не нашел, как бороться с linq to 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? Благодарю.

Ответы [ 2 ]

1 голос
/ 27 ноября 2010
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 ...
0 голосов
/ 27 ноября 2010
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 };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...