如何从linq获取列元数据到实体查询?

时间:2012-09-07 14:42:55

标签: linq entity-framework linq-to-entities

我需要支持旧客户端并从我们的Linq查询中组合ADO数据集。问题是如何获取使用反射无法获得的特定列信息(varchar长度,小数精度等)。

例如,我的表格客户,字段名称varchar(80)

当我从linq获取数据到实体查询时:

var data = (from c in ctx.Customers select c.Name).ToList()

我无法获取maxSize列的data[i].Name,并且adodataset会引发错误。

我已经有了简单的解决方案:

  1. 通过属性引用从ObjectContext中提取列元数据的代码
  2. 从Queryable解析表达式并将输出属性链接到edm列的简单代码。
  3. 但是我在解析包含多个嵌套的groupbys / unions / join等的复杂查询时遇到了很多问题。

    有没有人知道其他任何方式(可能使用物化整形器或类似物)?

1 个答案:

答案 0 :(得分:0)

感谢EFProviderWrappers by Joseph Kowalski我制作了类似的提供商,并在codeplex

上发布了该提供商
相关问题