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