PDA

View Full Version : left join در Entity Framework



love_m69
یک شنبه 09 اسفند 1394, 01:52 صبح
سلام
من میخوام کوئری زیر رو توی entity framework پیاده سازی کنم از دوستان کسی هست که به من کمک کنه؟
SELECT * FROM tblUser
LEFT JOIN tblUserGroup ON tblUser.ID=tblUserGroup.UserID
WHERE tblUserGroup.GroupID<>1 OR tblUserGroup.GroupID IS NULL

winner1
یک شنبه 09 اسفند 1394, 04:32 صبح
select مستقیم بزن بدون جوین from r in talble n in tablen

love_m69
یک شنبه 09 اسفند 1394, 04:43 صبح
چطوری بدون join بنویسم.
مشکل اصلی من شرطشه؟

ali_md110
یک شنبه 09 اسفند 1394, 04:48 صبح
سلام
شما میخاید لیست کاربرانی که گروه کاربری انها 1 نباشد را پیدا کنید؟
کمی طراحی شما مناسب نیست بنظرم در اینجا زابطه یک به چند داشته باشید در صورتیکه باید رابطه چند به چند بین کاربر و گروه برقرار گنید

ef ازnavigation property ها جهت ارتباط یک موجودیت با موجودیت دیگر استفاده میکنه و میتونید از eager loading هم استفاده کنید.

ولی در عین حال این دو تا دستور اجرا کنید شاید جواب گرفتید

var q = context.
tblUser
.Select(a => new {usergroup= a.
tblUserGroups
.Where(x=> x.
GroupID
==1 || x.
GroupID
==null)}).ToList();



var q2 = (Context.Users.GroupJoin(Context.UserGroups, user => user.Id, i => i.UserId,
(user, output) => new {user, output})
.SelectMany(@t => @t.output.DefaultIfEmpty().Where(x => x.GroupId != 1),
(@t, j) => new {id = @t.user.Id, name = @t.user.UserName })).ToList();

ژیار رحیمی
یک شنبه 09 اسفند 1394, 07:19 صبح
var query =Context.tblUserGroups.Where(c=>c.GroupID!=1 ||c.GroupID==null).ToList()
Select(c=>new{c.tblUser.ID,c.tblUser.Name,c.tblUser.Password }).ToList();

parsdarab
یک شنبه 09 اسفند 1394, 14:06 عصر
سلام


var r=Context.tblUser.include(x=>x.tblUserGroup)
.where(x=>x.tblUserGroup.GroupID <> 1 || x.tblUserGroup.GroupID == null)