【问题标题】:How to obtain column metadata from linq to Entities query?如何从 linq to Entities 查询中获取列元数据?
【发布时间】: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 引发错误。

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

  1. 通过属性引用从 ObjectContext 中提取列元数据的代码
  2. 从 Queryable 解析表达式并将输出属性链接到 edm 列的简单代码。

但是我在解析包含多个嵌套 groupbys/unions/joins 等的复杂查询时遇到了很多问题。

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

【问题讨论】:

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


    【解决方案1】:

    感谢EFProviderWrappers by Joseph Kowalski我已经制作了类似的提供者并将其发布在codeplex

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多