我正在尝试使用 ObjectQuery 的 ToTraceString() 在 EF (4.3) 上构建一些自定义扩展,以从 LINQ 代码生成原始 SQL。
我注意到,虽然在某些情况下 SQL 中的列名与查询元素类型的属性名相匹配,但在其他情况下,它们被命名为 C1、C2 等。这让我很难做任何事情使用生成的 SQL。有谁知道如何将这些列名映射回属性名(如果有帮助,我只关心能够对诸如匿名类型之类的平面元组执行此操作,我不需要任何分层)。
依赖私有/内部反射的解决方案是完全可以接受的。我了解我可能需要在未来的 EF 版本中对其进行调整。另外,如果有帮助,我只使用 MS SqlServer (2008+)。