如何在wcf中使用dyanamic linq



我使用linq-to实体来动态检索数据,并创建了一个方法,如下所示:

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、columns时,它是动态的,但在客户端,当使用该方法时,它会出错——服务器没有提供有意义的回复;这可能是由于合约不匹配、会话提前关闭或内部服务器错误造成的。wcf是否给出了iquryable返回类型的问题?

请建议。。。。。。

您应该研究WCF数据服务,也称为oData Services

尝试使用返回ToList(),因为Linq使用了Deffer Loading的概念,这意味着当在客户端访问ToList或Result时,它会尝试连接到服务器以获取结果,而这正是它失败的地方。当您使用这种ORM时,建议您分离对象并将结果发送到客户端。

相关内容

  • 没有找到相关文章

最新更新