3 つのテーブルがあり、そのうちの 2 つは多対多の関係にあります。
写真:
これは、中央の 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 の中間テーブルであり、モデルには表示されません):
名前、Lotteries.CreatedBy、Lotteries.ModifiedOn、count(Lotteries.Id) を Lotteries の TotalDrawDates として選択 Lotteries.Id = LotteryDrawDates.LotteryId で LotteryOffersLotteryDates に参加 LotteryDrawDates.Id = LotteryOffersLotteryDrawDates.LotteryDrawDate_Id で LotteryOffersLotteryDrawDates. = LotteryOffersLotteryDrawDates.1 、Lotteries.CreatedBy、Lotteries.ModifiedOn
しかし、Linqは別の話です:P
ラムダ式でこれを行いたいと思います。ありがとう