我有三个表,其中两个是多对多关系。
图片:
这是中间 mm 表中的数据:
编辑: 直到这里,我得到了正确的 4 行,但它们都是相同的结果(我知道我需要 4 行,但有不同的结果)
return this._mediaBugEntityDB.LotteryOffers
.Find(lotteryOfferId).LotteryDrawDates
.Join(this._mediaBugEntityDB.Lotteries, ldd => ldd.LotteryId, lot => lot.Id, (ldd, lot) =>
new Lottery
{
Name = lot.Name,
CreatedBy = lot.CreatedBy,
ModifiedOn = lot.ModifiedOn
}).AsQueryable();
我的问题是,我怎样才能通过多对多表检索所有彩票,我只给出了 LotteryOfferId?
我想要实现的是通过 LotteryDrawDateId 从彩票表中获取数据。
首先,我使用 LotteryOfferId 从中间表中获取 DrawDates,然后通过中间表获取 drawDateIds 以在 LotteryDrawDate 表中使用它们。从该表中,我需要通过 LotteryDrawDate 表中的 LotteryId 检索 Lottey 表。
我通过普通 SQL 获得了这一点(LotteryOffersLotteryDrawDates 是 DB 中的中间表,在模型中看不到):
选择 Name, Lotteries.CreatedBy, Lotteries.ModifiedOn, count(Lotteries.Id) as TotalDrawDates from Lotteries join LotteryDrawDates on Lottery.Id = LotteryDrawDates.LotteryId join LotteryOffersLotteryDrawDates on LotteryDrawDates.Id = LotteryOffersLotteryDrawDates.LotteryDrawDate_Id 其中 LotteryOffersLotteryDrawDate9 group by LotteryOffersLotteryDrawDates = LotteryDrawDates。 , Lotteries.CreatedBy, Lotteries.ModifiedOn
但是 Linq 是不同的故事:P
我想用 lambda 表达式来做到这一点。谢谢