首页 > 解决方案 > Linq.dynamic.core IQueryable to SQL 语句

问题描述

我目前正在使用System.Linq.Dynamic.Core在我的应用程序中生成 SQL 语句。问题是当我尝试

db.table.select("new (column1 as a1)").ToString()

生成的 SQL 字符串会自动添加另一个1 AS [C1]& 列别名a1未显示在输出字符串中:

SELECT 
    1 AS [C1],
    [Extent1].[column1] AS [column1]
FROM 
    (SELECT 
         [table].[column1] AS [column1]
     FROM 
         table AS [table]) AS [Extent1]

我的问题是如何实现以下结果以及为什么会发生上述行为。

SELECT 
    [Extent1].[column1] AS [c1]
FROM 
    (SELECT 
         [table].[column1] AS [column1]
     FROM 
         table AS [table]) AS [Extent1]

标签: c#sqllinq

解决方案


尝试将获取数据的代码行更改为

var list = db.table.Select("new (column1 as a1)").ToDynamicList();

结果将是每个都有属性List<dynamic>的动态对象。a1

实际的 SQL 语句可能不同,但返回的属性名称将遵循别名。


推荐阅读