LINQ vs GridView
От: ann.molchanova Земля  
Дата: 07.01.09 12:36
Оценка:
добрый день. Непроходимая проблема с linqdatasource. Gridview должен отображать выборку данных с трех таблиц (т.е. отобразить одну таблицу, но место userid выводить user.email например), update & sorting должно быть доступно. Gridview отображает "основные" данные с первой таблицы с помощью boundfield, а вот данные из других таблиц отображаются вот таким образом:

<asp:TemplateField HeaderText="Payment's characteristics:" SortExpression="Payment_Characteristics" >
<ItemTemplate>
<%#Eval("Type_of_Payment.Payment_Characteristics")%>
</ItemTemplate>
</asp:TemplateField>

Где Type_of_Payment — это атрибут связи с другой таблицей. Вот и тут все сыпется — <%#Eval("Type_of_Payment.Payment_Characteristics")=null?true%> возращает true . Хотя fk в ms sql есть, в dmbl файле связь есть, при запросах "вручную" из кода поле появляется, а через linqdatasource — нет. Магия заключается еще в том, что есть похожий проект с идентичным на 95% кодом и там работает именно таким способом.

Зараннее спасибо за ответ.
Re: LINQ vs GridView
От: Neco  
Дата: 07.01.09 17:03
Оценка:
AM> <%#Eval("Type_of_Payment.Payment_Characteristics")=null?true%>
я абсолютно не в теме о разных там linq&gridview, но хочу обратить внимание на "=" вместо "==". Может это и не в ту степь, но всё же может запутать.
всю ночь не ем, весь день не сплю — устаю
Re[2]: LINQ vs GridView
От: Niemand Австралия  
Дата: 07.01.09 18:45
Оценка:
Здравствуйте, Neco, Вы писали:

AM>> <%#Eval("Type_of_Payment.Payment_Characteristics")=null?true%>

N>я абсолютно не в теме о разных там linq&gridview, но хочу обратить внимание на "=" вместо "==". Может это и не в ту степь, но всё же может запутать.

это опечатка. так оно даже не скомпилиццо
If the message above is in English — means I'm wasting my work time and work computer to post here. No hard feelings
Re: LINQ vs GridView
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 07.01.09 19:24
Оценка: 2 (1)
Здравствуйте, ann.molchanova, Вы писали:

AM>добрый день. Непроходимая проблема с linqdatasource. Gridview должен отображать выборку данных с трех таблиц (т.е. отобразить одну таблицу, но место userid выводить user.email например), update & sorting должно быть доступно. Gridview отображает "основные" данные с первой таблицы с помощью boundfield, а вот данные из других таблиц отображаются вот таким образом:


AM> <asp:TemplateField HeaderText="Payment's characteristics:" SortExpression="Payment_Characteristics" >

AM> <ItemTemplate>
AM> <%#Eval("Type_of_Payment.Payment_Characteristics")%>
AM> </ItemTemplate>
AM> </asp:TemplateField>

AM>Где Type_of_Payment — это атрибут связи с другой таблицей. Вот и тут все сыпется — <%#Eval("Type_of_Payment.Payment_Characteristics")=null?true%> возращает true . Хотя fk в ms sql есть, в dmbl файле связь есть, при запросах "вручную" из кода поле появляется, а через linqdatasource — нет. Магия заключается еще в том, что есть похожий проект с идентичным на 95% кодом и там работает именно таким способом.


AM>Зараннее спасибо за ответ.


LinqDataSource отключает у контеста LazyLoad. Вам нужно перехватывать событие создания контекста и прописывать DataLoadOptions чтобы объект грузился со связями.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.