Это перекрестная публикация на форумах поддержки Telerik .
У меня есть контекст Entity Framework (Code First, 4.1), который используется на уровне сервиса WCF.Если у меня настроен сервис таким образом:
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;
}
Сервис работает нормально.Если я настрою это так, следуя примерам привязки к сетке через веб-сервисы ...
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;
}