C# Telerik NotSupportedException网格使用helper类

C# Telerik NotSupportedException网格使用helper类,c#,asp.net-mvc,entity-framework,telerik,C#,Asp.net Mvc,Entity Framework,Telerik,因此,我正在尝试清理一些代码,因为我不想为我将经常重复的内容额外添加30行代码。但我似乎无法让它正常工作 我正在使用实体框架从数据库中获取记录,然后尝试将IQueryable传递给助手方法来完成工作,并将IQueryable传递回初始变量。然后,该方法完成转换为Telerik网格的DataSourceResult。我之所以认为是helper方法导致了这个问题,是因为我可以把这一切都放在controller方法中,它工作得非常好。但当我尝试将其拆分时,它就会停止工作并抛出错误。所以我一定是做错了什

因此,我正在尝试清理一些代码,因为我不想为我将经常重复的内容额外添加30行代码。但我似乎无法让它正常工作

我正在使用实体框架从数据库中获取记录,然后尝试将IQueryable传递给助手方法来完成工作,并将IQueryable传递回初始变量。然后,该方法完成转换为Telerik网格的DataSourceResult。我之所以认为是helper方法导致了这个问题,是因为我可以把这一切都放在controller方法中,它工作得非常好。但当我尝试将其拆分时,它就会停止工作并抛出错误。所以我一定是做错了什么

助手方法:

public static IQueryable<DetailedTicketModel> GetDetailedTicketModels(IQueryable<TICKET> tickets)
{
    using (var ctx = new GuardianContext())
    {
        var detailedTickets = tickets.Select(v => new DetailedTicketModel()
        {
            Id = v.ID,
            RequesterId = v.REQUESTER_ID,
            RequesterName = v.REQUESTER_NAME,
            Phone = v.PHONE,
            Location = v.LOCATION,
            Source = v.SOURCE,
            PersonAssigned = v.PERSON_ASSIGNED,
            Created = v.CREATED,
            Updated = v.UPDATED,
            DeptId = v.DEPT_ID,
            DeptName = ctx.DEPARTMENTS.FirstOrDefault(t => t.ID == v.DEPT_ID).NAME,
            TopicId = v.TOPIC_ID,
            TopicName = ctx.TICKET_TOPICS.FirstOrDefault(t => t.ID == v.TOPIC_ID).NAME,
            StatusId = v.STATUS_ID,
            StatusName = ctx.TICKET_STATUSES.FirstOrDefault(t => t.ID == v.STATUS_ID).NAME,
            PriorityId = v.PRIORITY_ID,
            PriorityName = ctx.TICKET_PRIORITIES.FirstOrDefault(t => t.ID == v.PRIORITY_ID).NAME,
            PriorityHexColor = ctx.TICKET_PRIORITIES.FirstOrDefault(t => t.ID == v.PRIORITY_ID).HEX_COLOR,
            TicketEvents = ctx.TICKET_EVENTS.Where(t => t.TICKET_ID == v.ID).OrderBy(t => t.CREATED),
            RequestBody =
                ctx.TICKET_EVENTS.OrderBy(t => t.CREATED).FirstOrDefault(t => t.TICKET_ID == v.ID).BODY,
            RequestFormat =
                ctx.TICKET_EVENTS.OrderBy(t => t.CREATED).FirstOrDefault(t => t.TICKET_ID == v.ID).FORMAT,
        });
        return detailedTickets;
    }
}
这是错误发生时的输出

A first chance exception of type 'System.NotSupportedException' occurred in EntityFramework.dll
A first chance exception of type 'System.NotSupportedException' occurred in EntityFramework.dll
A first chance exception of type 'System.NotSupportedException' occurred in EntityFramework.SqlServer.dll
A first chance exception of type 'System.NotSupportedException' occurred in System.Web.Mvc.dll
A first chance exception of type 'System.NotSupportedException' occurred in System.Web.Mvc.dll
如果有用的话,这里是剃须刀代码

@if (ViewBag.UnassignedTicketsAvailable)
{
    <h3 class="page-header">Unassigned Tickets</h3>

    @(Html.Kendo().Grid<Guardian.ViewModels.DetailedTicketModel>()
      .Name("unassigned_grid")
      .Columns(columns =>
      {
          columns.Bound(ticket => ticket.Id).Visible(false);
          columns.Bound(ticket => ticket.RequesterId);
          columns.Bound(ticket => ticket.RequesterName);
          columns.Bound(ticket => ticket.Created);
      })
      .DataSource(dataSource => dataSource.Ajax().Read(read => read.Action("UnassignedTickets_Read", "Ticket"))
      )
      .ClientDetailTemplateId("client-template")
      .Sortable()
      .Pageable()
      .Filterable()
    )
}

<script id="client-template" type="text/kendo-tmpl">
    @(Html.Raw("<div style\"padding: 0.4em;\">#=RequestBody#</div>"))

</script>

<script>
    function dataBound() {
        this.expandRow(this.tbody.find("tr.k-master-row").first());
    }
</script>
@if(ViewBag.UnassignedTicketsAvailable)
{
未分配门票
@(Html.Kendo().Grid())
.Name(“未分配网格”)
.列(列=>
{
columns.Bound(ticket=>ticket.Id).Visible(false);
columns.Bound(ticket=>ticket.RequesterId);
columns.Bound(ticket=>ticket.RequesterName);
columns.Bound(ticket=>ticket.Created);
})
.DataSource(DataSource=>DataSource.Ajax().Read(Read=>Read.Action(“UnassignedTickets\u Read”,“Ticket”))
)
.ClientDetailTemplateId(“客户端模板”)
.Sortable()
.Pageable()
.可过滤()
)
}
@(Html.Raw(“#=RequestBody”)
函数数据绑定(){
this.expandRow(this.tbody.find(“tr.k-master-row”).first());
}

我的问题是我需要在助手类中进行快速加载。所以我的归宿在哪里我应该

return detailedTickets.ToList();
希望这对别人有帮助

return detailedTickets.ToList();