【发布时间】:2012-09-08 05:38:54
【问题描述】:
我需要支持旧版客户端并从我们的 Linq 查询中组合 ADO 数据集。问题是如何获取使用反射无法获取的特定列信息(varchar 长度、小数精度等)。
例如,我有表 Customer 字段 Name varchar(80)
当我从 linq 获取数据到实体查询时:
var data = (from c in ctx.Customers select c.Name).ToList()
我无法为 data[i].Name 列获取 maxSize 并且 adodataset 引发错误。
我已经有了简单的解决方案:
- 通过属性引用从 ObjectContext 中提取列元数据的代码
- 从 Queryable 解析表达式并将输出属性链接到 edm 列的简单代码。
但是我在解析包含多个嵌套 groupbys/unions/joins 等的复杂查询时遇到了很多问题。
有没有人知道其他方法(可能使用物化整形器或类似方法)?
【问题讨论】:
标签: linq entity-framework linq-to-entities