不允许在源类型“动态”或具有“动态”类型的连接序列的查询表达式

时间:2014-04-16 15:44:22

标签: c# linq entity-framework dynamic

我正在动态传递一个实体作为参数。但是,在使用具有相同实体对象的linq时,我遇到异常。

错误:不允许在源类型“动态”或“动态”类型的连接序列上查询表达式

private void CallCustomerCodeDynamically(dynamic customerEntities)
{
    var customerCode= from customer in customerEntities.CustomerInfoes
                   orderby customer.CustomerCode ascending
                   select customer.CustomerCode;
    ddlCustomerCode.DataSource = customerCode;
    ddlCustomerCode.DataBind();
}

请给我一个解决此问题的建议。

1 个答案:

答案 0 :(得分:0)

如上所述,Linq与gps['zip_code'] = gps.apply(lambda x: pool.map(reverse_gecode, [x[0], x[1]]), axis = 1)的效果不佳。 Linq大量使用扩展方法,这些扩展方法在编译时很受限制,因此你不能使用dynamic,因为它会延迟所有绑定到运行时。

如果您有两个数据集没有公共基本类型或接口,但具有相同的实体类型(至少按名称),那么您将需要两个重载。您可能能够重构其中的一部分以改善重用:

dynamic