【发布时间】:2022-08-18 00:23:01
【问题描述】:
我有这个代码:
private IQueryable<Trip> GetTripWithBreaksAndPassengers(DB_Context context, long id)
{
return from t in context.trip
where t.Id == id
join breaks in context.breaks on t.Id equals breaks.tripid into breaksJoin
join drivers in context.drivers on t.Id equals drivers.tripid into driversJoin
select new Trip() { TripBreaks = ?, TripDrivers = ?};
}
对于由id 指定的Trip,我想返回Breaks 和Drivers 的列表。
我的Trip 对象有两个字段是列表,TripBreaks 和TripDrivers:
public virtual List<TripBreak> TripBreaks { get; set; }
public virtual List<TripDriver> TripDrivers { get; set; }
我希望它们都作为Trip 的一部分返回 - 我期待breaksJoin 和driversJoin 保留这些特定结果,但如果像这样查询
TripDrivers = driversJoin.ToList()
它会抛出一个错误。
我应该如何使用这些连接结果来获取元素?
-
TripDrivers = GetTripWithBreaksAndPassengers(ctx, 100).ToList();将为您提供导航属性。顺便说一句,你不应该传入你的数据库上下文,而是注入它。
标签: c# database entity-framework join