ورود

View Full Version : سوال: سوال درباره اتصال یک table به خودش



hastiam
شنبه 15 بهمن 1390, 17:01 عصر
سلام
من یک table دارم که شامل نامهای گروه کالاست که هر کدام از این گروهها می توانند زیرمجموعه ای از یک گروه دیگر باشند فیلدهای جدول من شامل موارد زیر است:

ID(Guid),GroupName(string),ParentID(Guid

اینtableایه که به خودش وصله.حالا من می خوام این اطلاعات رو به صورت grid و یا tree نشون بدم به طوری که به جای ParentID نام گروههای سرشاخه نمایش داده بشند که برای اینکار از دستور زیر استفاده کردم



var GoodsGroupList = (from c in repository.GoodsGroup
join o in repository.GoodsGroup on c.ParentID equals o.ID
select new { c.ID,cgroup=c.GroupName, ogroup=o.GroupName }).ToList();



ولی این دستور میاد تمام گروههایی که ParentID دارند رو نشون میده و اونهایی که ParentID=null هست یا به عبارت دیگه سرشاخه ترین گروهها رو نشون نمیده.
برای حل مشکلم باید چیکارکنم؟:افسرده:
درضمن از نظر فیزیکی اتصالی برقرار نیست.

massar
شنبه 15 بهمن 1390, 20:06 عصر
سلام
شما باید از left outer join استفاده کنید:

var GoodsGroupList = (from c in repository.GoodsGroup
join o in repository.GoodsGroup on c.ParentID equals o.ID into gr
from i in gr.DefaultIfEmpty()
select new { c.ID, cgroup = c.GroupName, ogroup = (i == null)?null:i.GroupName }).ToList();