如何在wcf中使用动态linq?
我使用linq to entity动态检索数据,并创建了如下方法:如何在wcf中使用动态linq?,wcf,linq,dynamic,Wcf,Linq,Dynamic,我使用linq to entity动态检索数据,并创建了如下方法: public List<object> getDynamicList(string tablename, List<string> colnames) { try { var query = DynamicQueryable.getDynamicData(dbcontext, tablename, colnames); List<object>
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);
}
}
public List getDynamicList(字符串tablename,列表colnames)
{
尝试
{
var query=DynamicQueryable.getdynamicata(dbcontext、tablename、colnames);
List objQueryable=新列表();
object obj=query.AsQueryable();
objQueryable.Add(obj);
返回objQueryable;
}
捕获(例外情况除外)
{
HandleError(ex);
}
}
wcf服务中的此方法在内部引用MSVS2010在LINQ示例(C:\Program Files(x86)\Microsoft Visual Studio 10.0\samples\1033)中给出的动态类
当我传递tablename时,它会动态传递,但在客户端,当使用该方法时,它会给出错误-服务器没有提供有意义的回复;这可能是由于契约不匹配、会话过早关闭或内部服务器错误造成的。
wcf是否对iqueryable返回类型存在问题
请建议……您应该研究WCF数据服务(也称为oData服务)尝试使用返回ToList(),因为Linq使用Deffer加载的概念,这意味着当在客户端ToList或Result被访问时,它尝试连接到服务器以获得结果,而这正是它失败的地方。建议您在使用此类ORM时分离对象并将结果发送给客户端。请发布您看到的整个错误消息,包括错误消息和堆栈跟踪。这将使您更容易理解您遇到的问题。现在,我发现错误为-无法将类型“DynamicClass1”强制转换为类型“System.Object”。LINQ to Entities仅支持转换实体数据模型基元类型。无法将类型“DynamicClass1”转换为类型“System.Object”。LINQ to Entities仅支持转换实体数据模型基元类型。