Linq to Entities .net4 EF

时间:2011-01-28 00:10:24

标签: .net entity-framework linq-to-entities

我有自行车,座位和BikeSeats表。 BikeSeats是mapper表,来自BikeID和SeatID的复合键,其中没有其他列。

所有这些都映射在EF,.net 4中仅限于Bike,Seat(以及bike.Seats和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不存在,它已被映射到基本上自行车。座椅和/或座椅。自行车(因为桌子只有2个ID,所以EF会这样做)

任何有关转换此查询的帮助都会非常感激

由于 --MB

2 个答案:

答案 0 :(得分:2)

小学,亲爱的Boisson:

var seatsOnRedBikes = ctx.Seats.Where(s => s.Bikes.Any(b => b.Color == "Red"));

答案 1 :(得分:0)

首先必须声明你的实体的一个实例,我不知道你的实体名称是什么,例如说它是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;
        }

如果这对您不起作用,请详细说明您的实体。