Linqを使用してクエリで3つのテーブルを結合し、3つのテーブルすべてからデータを取得しようとしています。以下は、テーブルスキームの画像です。
クエリで選択する必要があります: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を指定されたリストに制限する場所/方法に問題があります。
似たようなことをやってみませんか?
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
});
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
};