با سلام
مدل مدیریت کاربران من به این صورت هستش که کاربر و نقش ارتباط چند به چند دارند. و کاربر با هر نقشی که بهش اختصاص داده شده ناظر چندین کاربر دیگه با نقشهای مختلف هستش. حالا من می خوام لیست کاربرانی که مستقیما زیر نظر هر کاربر هستند یا به طور غیر مستقیم هستند رو به دست بیارم. در به دست آوردن کاربران مستقیم مشکلی نیست ولی در به دست آوردن کاربران غیر مستقیم مشکل دارم. Self refrence هم با فیلد ParentId برقرار میشه.
لطفا راهنمایی کنید از چه راهی باید به دست بیارم.
با تشکر فراون
داده ها در جدول UserRole به صورت زیر ذخیره شدن
مشکلی نمیبینم !
ابتدا کاربر اصلی را بدست بیارید سپس یه لایه برید داخل و زیر مجموعه هاش رو بدست بیارید
نیاز به 2 کوئری هست
میتونید از LeftJoin هم استفاده کنید ولی اگر خیلی زیاد باشن این بار روی سرور هست
اگر رابطه ها درست باشه با یه کوئری و Include میتونید بدست بیارید
مهندس میشه تو یک مثال برای کاربر اول کد لازم رو نشونم بدید، ممنون میشم کمک کنید چون پروژه سر این داستان گیر کرده.
using (DataBaseFirstDBEntities db = new DataBaseFirstDBEntities()) { var result = (from order in db.Orders select new { ID = order.OrderID, Name = order.OrderName }).Union (from od in db.OrderDetails select new { ID = od.OrderDetailID, Name = od.OrderDetailName }).OrderByDescending(p => p.ID).ToList(); }
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)