Linq to Entities .net4 EF - PullRequest
       3

Linq to Entities .net4 EF

0 голосов
/ 28 января 2011

У меня есть столы Bikes, Seats и BikeSeats. BikeSeats - это таблица сопоставления, составной ключ от BikeID и SeatID, в нем нет других столбцов.

Все это отображается в EF, .net 4 только в Bike, Seat (и bike.Satats and seat.Bikes)

Я хочу получить все типы сидений, которые будут иметь велосипеды красного цвета:

    select distinct s.* 
    from seats s
          left join bikeSeats bs on s.seatID = bs.seatId
    where bs.bikeId in (select distinct bikeId from bikes where color=red)

с использованием Linq to Entities

По-настоящему сложным для меня является то, что BikeSeats не существует, он отображается в основном на bike.Seats и / или seat.Bikes (что делает EF, потому что в таблице только 2 идентификатора)

Любая помощь в преобразовании этого запроса будет так ценится

Спасибо --MB

Ответы [ 2 ]

2 голосов
/ 28 января 2011

Элементарно, мой дорогой Буассон:

var seatsOnRedBikes = ctx.Seats.Where(s => s.Bikes.Any(b => b.Color == "Red"));
0 голосов
/ 28 января 2011

Сначала нужно объявить экземпляр вашей сущности. Я не знаю, как называется ваша сущность. Скажем, например, что это BikeSeatEntity

List<Seat> GetSeats()
        {
            using (BikeSeatEntity bsEntity = new BikeSeatEntity())
            {
                var seats = from s in bsEntity.Seats.Include("Bikes").Where(s => s.Bike.Color = "Red")
                            select s;
                List<Seat> seatsList = seats.ToList();
                return seatsList;
            }
            return null;
        }

, если у вас это не работаетюридические лица.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...