我的表中有以下关系。
TravelPlan (Table A)
Destination(table D)
和Users(table E)
用于构建旅行选择,即Travelplan
中的条目可以包含多个Destination
和User
(映射存储在另一个映射表,即1到n)
DestinationTravelPlanMapping(TableC)
UserTravelPlanMapping(TableD)
。
但我无法完成查询。这个
有什么问题我需要使用Linq为给定用户提取所有Unique
destinations
。
var userId=6;
return context.TravelPlan
.Include(x => x.DestinationTravelPlanMapping)
.Include(x => x.DestinationTravelPlanMapping.Select(y => y.Destination))
.Include(x => x.UserTravelPlanMapping.Select(y => y.UserId == userId))
// the below select statement is throwing error
.Select(x => x.DestinationTravelPlanMapping.Select(y => new Destination
{
Id = y.Destination.Id,
Name = y.Destination.Name
}));
答案 0 :(得分:0)
试试这个:
return context.TravelPlans
.Where(x => x.UserTravelPlanMapping.Any(y => y.UserID == userID))
.SelectMany(x => x.DestinationTravelPlanMapping.Select(y => y.Destination))
.Distinct();
您希望Destination
中TravelPlans
的唯一UserTravelPlanMapping
个UserID
与userID
匹配变量{{1}}。