我正在使用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服务中的此方法在内部引用MSVS2010在LINQ示例(C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ Samples \ 1033)中给出的动态类。
当我传递tablename时,它会动态地在客户端执行,但在使用该方法时它会产生错误 - 服务器没有提供有意义的回复;这可能是由于合同不匹配,过早的会话关闭或内部服务器错误造成的。 wcf会给出iqueryable返回类型的问题吗?
请建议......
答案 0 :(得分:0)
您应该查看WCF数据服务,即oData服务
答案 1 :(得分:0)
尝试使用返回ToList(),因为Linq使用Deffer Loading的概念,这意味着当客户端ToList或Result被访问时,它会尝试连接到Server以获取结果,这是它将失败的地方。建议您在使用此类ORM时分离对象并将结果发送给客户端。