我有自行车,座位和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
答案 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;
}
如果这对您不起作用,请详细说明您的实体。