2016-04-05 9 views
1

Bu sorgudaki koşulun maddeye nasıl eklenir?Linq Nerede ile İçinde

var res = from aa in db.UserMsts.Where(p => p.Id == id) 
       join bb in db.UserGrpHdrs on aa.usrgrpid equals bb.usrgrpid 
       join cc in db.UserGrpDtls on aa.usrgrpid equals cc.usrgrpid where cc.pageid == pg 
       join dd in db.UserPrivHdrs on new { aa.usrgrpid, userid = aa.Id } equals new { dd.usrgrpid, dd.userid } into ddd 
       from dd in ddd.DefaultIfEmpty()// <== left outer join 

//Error in following line 
       join ee in db.UserPrivDtls on dd.usrprivid equals ee.usrprivid 
       where ee.pageid == pg into eee // error here at into 

       from ee in eee.DefaultIfEmpty() // <== left outer join 
       select new UserPrivDto{ 
        CanAdd = ee.addpriv != null ? ee.addpriv : cc.addpriv, 
        CanEdit = ee.editpriv != null ? ee.editpriv : cc.editpriv, 
        CanView = ee.viewpriv != null ? ee.viewpriv : cc.viewpriv, 
        CanDel = ee.delpriv != null ? ee.delpriv : cc.delpriv, 
            }; 

UserPrivDtls, filtrelenmiş olmalıdır ve bir sol dış birleştirmeyle birleştirilmelidir.

Hata Sorgu vücut seçkin maddesi veya Grup fıkra

ile bitmelidir

olduğunu. Teşekkür

+1

Sen 'db.UserPrivDtls.Where (kullanabilirsiniz EE1 => EE1 .pageid == pg) 'db.UserMsts.Where ile yaptığınız gibi. –

+0

@GertArnold Teşekkür Çalıştı. Cevap vermeli. – Deb

cevap

0

Zaten sorgu sözdizimi ve akıcı sözdizimi karıştırma konum itibariyle en pratik çözüm eklemek bir Where durum db.UserPrivDtls için:

var res = from aa in db.UserMsts.Where(p => p.Id == id) 
      join bb in db.UserGrpHdrs on aa.usrgrpid equals bb.usrgrpid 
      join cc in db.UserGrpDtls on aa.usrgrpid equals cc.usrgrpid where cc.pageid == pg 
      join dd in db.UserPrivHdrs on new { aa.usrgrpid, userid = aa.Id } equals new { dd.usrgrpid, dd.userid } into ddd 
      from dd in ddd.DefaultIfEmpty() 

      join ee in db.UserPrivDtls.Where(ee1 => ee1.pageid == pg) 
       on dd.usrprivid equals ee.usrprivid 
       into eee 
      from ee in eee.DefaultIfEmpty() 

      select new UserPrivDto{ 
       CanAdd = ee.addpriv != null ? ee.addpriv : cc.addpriv, 
       CanEdit = ee.editpriv != null ? ee.editpriv : cc.editpriv, 
       CanView = ee.viewpriv != null ? ee.viewpriv : cc.viewpriv, 
       CanDel = ee.delpriv != null ? ee.delpriv : cc.delpriv, 
           };