【发布时间】:2011-10-29 03:50:23
【问题描述】:
这是在Telerik's support forums 上交叉发布的。
我有一个在 WCF 服务层中使用的实体框架(代码优先,4.1)上下文。如果我以这种方式设置服务:
public IEnumerable<Dto.PlanMember> GetPlanMembers() {
var planMembers = from member in this.DataSource.PlanMemberDbSet.Take(10)
select new Dto.PlanMember {
Id = member.Id,
FirstName = member.FirstName,
LastName = member.LastName
};
return planMembers;
}
服务运行良好。如果我像这样设置它,遵循the examples for grid binding via web services...
public GridModel GetPlanMembers(GridState state) {
var planMembers = from member in this.DataSource.PlanMemberDbSet.Take(10)
select new Dto.PlanMember {
Id = member.Id,
FirstName = member.FirstName,
LastName = member.LastName
};
return planMembers.ToGridModel(state);
}
它总是得到异常:
底层连接已关闭:连接已关闭 没想到。
我确定这是一个序列化问题。无论出于何种原因,ToGridModel 扩展方法无法与 EFCF 4.1 一起正常工作。有什么办法可以解决这个问题?
这也不起作用,所以它必须与序列化 GridModel 类型有关,而不是扩展方法本身的问题:
public GridModel GetPlanMembers(GridState state) {
var planMembers = from member in this.DataSource.PlanMemberDbSet.Take(10)
select new Dto.PlanMember {
Id = member.Id,
FirstName = member.FirstName,
LastName = member.LastName
};
var gridModel = new GridModel {
Data = planMembers,
Total = planMembers.Count()
};
return gridModel;
}
【问题讨论】: