iran58

معادل کد sql در Lambda

سلام

کد زیر را چگونه می توان در Lambda بنویسم

select 
 r.Name,case when p.PermissionId>0 then 1 else 0 end as ch
from Role r
left join Permission p on r.RoleId=p.RoleId
and  p.UserId='1'
لذت یادگیری با توسینسو
به عنوان شخصی که مدت هاست از سایت توسینسو استفاده می کنم باید بگم که واقعاً یکی از بهترین مرجع ها برای ارتقاء دانش شخصی هست. دوره های سایت، راهکارها و مطالب، همگی عالی هستند.
iran58

سلام

مهندسین لطفا کمک کنید

حسین احمدی

سلام، وقت بخیر

بنده اطلاع ندارم مدل شما چجوری تعریف شده، ولی بر اساس نام جداول این کد رو امتحان کنید ببینید جواب میگیرید:

role.Join(permission.Where(p=>p.UserId = "1"), r=> r.Id, p=>p.RoleId, (r,p)=> new
{
    r.Name,
    Ch = p.PermissionId > 0 ? 1 : 0
};
لطفاً سوال خود را در انجمن مطرح کنید، به سوالات در پیام خصوصی پاسخ داده نخواهد شد
iran58

سلام

مهندس کد زیر را نوشته ام

    var list1 = db.Roles
                .Join(db.Permissions.Where(p => p.UserId ==1),
                    r => r.RoleId,
                    p => p.RoleId,
                    (r, p) => new { r, p })
                .Select(c => new
                {
                    name = c.r.Name,
                    ch = c.p.PermissionId > 0 ? 1 : 0
                }).ToList();

اما این کد فقط دسترسهای که کاربر یک 1 را دارد برمیکرداند اما من میخواهم همه لیست دسترسیتهارا برگرداند (آنهای که کاربر یک دارد را true و انهای که ندارد را false نمایش بدهد )

حسین احمدی

سلام مجدد، کدتون رو به صورت زیر تغییر بدید:

db.Permissions.Join(db.Roles, p=>p.RoleId, r=>r.RoleId, (p,r) => new
{
    name = r.Name,
    ch = p.UserId = 1 ? 1 : 0
});
لطفاً سوال خود را در انجمن مطرح کنید، به سوالات در پیام خصوصی پاسخ داده نخواهد شد
پاسخ شما
برای ارسال پاسخ خود وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره تابستانه می تونی امروز ارزونتر از فردا خرید کنی ....