Как я могу использовать псевдоним таблицы результатов LINQ? - PullRequest
1 голос
/ 09 марта 2011

Я пытаюсь создать псевдоним таблицы результатов LINQ, но не могу найти способ сделать это.

В частности я использую QueryExtender с CustomExpression и DynamicData для фильтрации EntityDataSource.Это работает, пока я не сортирую по одному из столбцов, где я получаю сообщение об ошибке, что таблица "это" не может быть найдена.Я знаю, что это псевдоним таблицы, в который упаковывает DynamicData все.

protected void FilterBasedOnDateRange(object sender, CustomExpressionEventArgs e)
{
    if (filterFromDate.SelectedDate != null && filterToDate.SelectedDate != null)
    e.Query = (from p in e.Query.Cast<CalendarDay>()
                where p.CalendarDate >= filterFromDate.SelectedDate && p.CalendarDate <= filterToDate.SelectedDate
                select p);
}


<asp:Label ID="filterFromDateLabel" runat="server" Text='From Date' Font-Bold="true"  />
    <telerik:RadDatePicker ID="filterFromDate" runat="server" OnSelectedDateChanged="OnSelectedDateChanged" AutoPostBack="true" >
        </telerik:RadDatePicker>
    <asp:Label ID="filterToDateLabel" runat="server" Text='To Date' Font-Bold="true" />
    <telerik:RadDatePicker ID="filterToDate" runat="server" OnSelectedDateChanged="OnSelectedDateChanged" AutoPostBack="true" >
        </telerik:RadDatePicker>
<br /><br />
<asp:QueryExtender ID="qeRange" runat="server" TargetControlID="GridDataSource">
    <asp:CustomExpression OnQuerying="FilterBasedOnDateRange" />
</asp:QueryExtender> 

1 Ответ

2 голосов
/ 10 марта 2011

Ошибка: «PageRequestManagerServerErrorException: свойство экземпляра 'it' не определено для типа"

Я нашел решение для http://forums.asp.net/p/1528965/3696540.aspx

"Добавить событие выбора для источника данных объектав шаблоне страницы List.aspx в папке DynamicData и добавьте следующие строки кода в событие. "

string s=e.SelectArguments.SortExpression; 
if(s.StartsWith("it.")) 
  e.SelectArguments.SortExpression = s.Substring(3);
...