Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > ASP > Left Join в Linq


Автор: Yagmort 6.10.2011, 11:40
Код

  var svodka =  from currentUser in dc.CURRENT_USERs 
                          join change in dc.CHANGEs on currentUser.id_change equals change.id_change
                          join user in dc.OU on currentUser.id_user equals user.id_user  
                          join post in dc.POSTs on user.id_post equals post.id_post
                         select new { currentUser.date_record, user.last_name, user.first_name, user.father_name, user.login, user.password, user.role, post.post1, change.change1 };

Этот linq запрос аналогичен этому но разница лишь в том, что в Linq он выполняет и ставит INNER JOIN, а мне надо LEFT JOIN, как переписать ?
Код

SELECT 
cu.date_record
,obu.first_name
,obu.father_name
,obu.last_name
,obu.login
,obu.password
,obu.role
,post.post
,ch.change
 FROM oilbase2.dbo.CURRENT_USERS as cu
LEFT JOIN oilbase2.dbo.CHANGE ch on cu.id_change=ch.id_change
LEFT JOIN oilbase2.dbo.OU obu on cu.id_user=obu.id_user
LEFT JOIN oilbase2.dbo.POST post on obu.id_post=post.id_post

Автор: Yagmort 6.10.2011, 11:59
Код

 var svodka =    from currentUser in dc.CURRENT_USERs 
                            join change in dc.CHANGEs on currentUser.id_change equals change.id_change into changeLeft
                            from RecordChangeLeft in changeLeft.DefaultIfEmpty()
                            join user in dc.OILBASE_USERs on currentUser.id_user equals user.id_user into userLeft
                            from RecordUserLeft in userLeft.DefaultIfEmpty()
                            join post in dc.POSTs on RecordUserLeft.id_post equals post.id_post into postLeft
                            from RecordPostLeft in postLeft.DefaultIfEmpty()
                            select new { currentUser.date_record, RecordUserLeft.last_name, RecordUserLeft.first_name, RecordUserLeft.father_name, RecordUserLeft.login, RecordUserLeft.password, RecordUserLeft.role, RecordPostLeft.post1, RecordChangeLeft.change1 };
            var list = svodka.ToList();
            GridView2.DataSource = list;
            GridView2.DataBind();


Отображает данные в GridView, но не работает сортировка и постраничный просмотр, выскакивают ошибки
Код

The GridView 'GridView2' fired event Sorting which wasn't handled. 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.Web.HttpException: The GridView 'GridView2' fired event Sorting which wasn't handled.


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)