web-dev-qa-db-ja.com

linqで3つのテーブルを結合する方法

Linqを使用してクエリで3つのテーブルを結合し、3つのテーブルすべてからデータを取得しようとしています。以下は、テーブルスキームの画像です。

enter image description here

クエリで選択する必要があります:SewagePlantName、CompanyName、Duty

さらに、SewagePlantIdを次のように指定されたIDのリストに制限する必要があります。

            var sewagePlantIds = UnitOfWork.GetAll<UserGroup>()
            .Where(group => group.Id == webAppPrincipal.GroupId)
            .SelectMany(group => group.SewagePlantId).Select(sewageplant => sewageplant.Id).ToList();

3つのテーブルを結合する順序と、SewagePlantIdを指定されたリストに制限する場所/方法に問題があります。

4
Manu

似たようなことをやってみませんか?

 from d in Duty
join c in Company on d.CompanyId equals c.id
join s in SewagePlant on c.SewagePlantId equals s.id
  .Select(m => new
  {
      duty = s.Duty.Duty, 
      CatId = s.Company.CompanyName,
      SewagePlantName=s.SewagePlant.SewagePlantName
      // other assignments
  });
9
Bits_Please
var obj = from trns in context.tblPartyRegistrations
          join st in context.tblSellingTrans
          on trns.PartyRegId equals st.Fk_PartyRegId
          join pt in context.tblPartyRemainings
          on trns.PartyRegId equals pt.fk_PartyId
          select new
          {
              trns.Name,
              trns.PhoneNo,
              trns.Address,
              st.RecivedAmount,
              st.Date,
              st.CustomerType,
              st.MilkRate,
              st.Mltr,
              st.Mkg,
              st.NtAmnt,
              st.RemaningAmount,
              pt.Remainingammount
          };
0
user8191706