PDA

View Full Version : سوال: Left Join در Linq



IR-Developer
دوشنبه 06 بهمن 1393, 18:37 عصر
سلام من 4 جدول دارم که در sql server براشون Join نوشتم ولی چون توی سی شارپ میخوام مشترک هاشون را بریزم توی یک کلاس و برگشت بدم باید با linq بنویسم .

کوئری اینه

select * from adm.Members as m inner join adm.Setting as s on m.ParentID = s.MemberID

left outer join adm.Location as l on l.LocationID = m.LocationID

left outer join adm.IndustrialGroup as i on m.IndustrialGroupID = i.IndustrialGroupID

where s.Domain = '...' and s.Active = 1 and m.UnitName = N'...'



میخوام معادل linq را بنویسم ولی اصلا متوجه نشدم left join توی linq به چه شکل باید بنویسم . سرچ کردم نفهمیدم ! لطفا راهنمایی کنید .

SabaSabouhi
دوشنبه 06 بهمن 1393, 19:27 عصر
سلام
اگه منظورتون با Lambda هست باید بجای Join از GroupJoin استفاده کنید.

صبا صبوحی

IR-Developer
دوشنبه 06 بهمن 1393, 20:21 عصر
سلام
اگه منظورتون با Lambda هست باید بجای Join از GroupJoin استفاده کنید.

صبا صبوحی

من سرچ کردم و یه چیزی شبیه این گفته شده بود که نوشتم ولی توی select آخرش خطای بلندی میده. نمیدونم مشکلش چیه . join معمولی به شکل زیر انجام میدم ولی نمیدونم left join صحیحش چطوره ؟

مشکل کد زیر چیه ؟ چطور کد زیر را توش left join انجام بدم ؟

from m in db.Members
join s in db.Settings on m.MembersID equals s.MemberID
join i in db.IndustrialGroups on s.SettingID equals i.SettingID into a
from i in a.DefaultIfEmpty()
join l in db.Locations on m.LocationID equals l.LocationID into b

from j in b.DefaultIfEmpty()
where m.UnitName.Contains(unitname) && s.Domain.Contains("http://shbozorg.com") && s.Active == 1
select new IndustrialGroupData()
{
Id = i.IndustrialGroupID,
UnitCode = m.UnitCode,
UnitName = m.UnitName,
Address = m.Address,
Email = m.Email,
Fax = m.Fax,
GroupName = i.GroupName,
LocationName = l.LocationName,
ManageName = m.ManageName,
Mobile = m.Mobile,
Plaque = m.Plaque
});

SabaSabouhi
سه شنبه 07 بهمن 1393, 13:09 عصر
سلام
خوب چه خطایی می‌ده؟

صبا صبوحی

IR-Developer
سه شنبه 07 بهمن 1393, 17:58 عصر
سلام
خوب چه خطایی می‌ده؟

صبا صبوحی

یک خطای 20 خطی با فونت ریز نوشته . اصلا نمیشه خوند . دیگه مجبور شدم این کوئری را با ado انجام دادم .