#wcf #linq #dynamic
#wcf #linq #динамический
Вопрос:
Я использую linq-to-entity для динамического извлечения данных и создал метод следующим образом:
public List<object> getDynamicList(string tablename, List<string> colnames)
{
try
{
var query = DynamicQueryable.getDynamicData(dbcontext, tablename, colnames);
List<object> objQueryable = new List<object>();
object obj = query.AsQueryable();
objQueryable.Add(obj);
return objQueryable;
}
catch (Exception ex)
{
HandleError(ex);
}
}
этот метод в службе wcf внутренне ссылается на динамический класс, указанный в примерах LINQ (C:Program Файлы (x86) Microsoft Visual Studio 10.0 Samples 1033) от MSVS2010.
когда я передаю tablename, столбцы динамически, это происходит, но на стороне клиента при использовании этого метода выдается ошибка — сервер не предоставил значимого ответа; это может быть вызвано несоответствием контракта, преждевременным завершением сеанса или внутренней ошибкой сервера. выдает ли wcf проблему с типом возвращаемого значения iqueryable?
пожалуйста, предложите……
Комментарии:
1. Пожалуйста, опубликуйте все сообщение об ошибке, которое вы видите, включая сообщение об ошибке и трассировку стека. Это значительно облегчит понимание того, с какой проблемой вы столкнулись.
Ответ №1:
Вам следует изучить службы передачи данных WCF, они же службы OData
Комментарии:
1. Не удается преобразовать тип ‘DynamicClass1’ в тип ‘System. Объект’. LINQ для объектов поддерживает только приведение примитивных типов модели данных объектов.
Ответ №2:
Попробуйте вместо этого использовать returning ToList(), потому что Linq использует концепцию Deffer Loading, что означает, что когда на стороне клиента осуществляется доступ к ToList или Result, он пытается подключиться к серверу для получения результата, и это приводит к сбою. Рекомендуется, когда вы используете такой вид ORM, отсоединять свои объекты и отправлять результат клиенту.
Комментарии:
1. теперь я получаю ошибку как — Не удается преобразовать тип ‘DynamicClass1’ в тип ‘System. Объект’. LINQ для объектов поддерживает только приведение примитивных типов модели данных объектов.