Linq to sql LINQ到SQL动态排序问题

Linq to sql LINQ到SQL动态排序问题,linq-to-sql,dynamic,sorting,Linq To Sql,Dynamic,Sorting,如何在我的LINQ数据中编写Select子句来选择列别名,以便对其进行排序基本上我想在LINQ中完成此SQL语句: select type_id as id, type_desc as description from dbo.equip_type_avt order by description 我应该用什么替换LINQ语句中.Select子句中的? public IQueryable<equip_type_avt> GetGri

如何在我的LINQ数据中编写Select子句来选择列别名,以便对其进行排序基本上我想在LINQ中完成此SQL语句:

select 
     type_id as id,
     type_desc as description 
from
     dbo.equip_type_avt
order by
     description
我应该用什么替换LINQ语句中.Select子句中的

   public IQueryable<equip_type_avt> GetGridEquipmentTypes(string sidx, string sord)
    {

        try
        {
            return
                ulsDB.equip_type_avts
                    .Select(?????)
                    .OrderBy(sidx + " " + sord);


        }
        catch (Exception ex)
        {
            string strErr = ex.Message;
            return null;
        }

    }
public IQueryable GetGridEquipmentTypes(字符串sidx、字符串sord)
{
尝试
{
返回
ulsDB.Equipment\u类型\u avts
.选择(???)
.OrderBy(sidx+“”+sord);
}
捕获(例外情况除外)
{
字符串strErr=例如消息;
返回null;
}
}

我不确定我是否理解您的问题,sidx和sord与您的查询有何关联


您的问题不是必须以OrderBy(…)结束查询吗?然后是by(…)而不是组合OrderBy?

我不确定我是否理解您的问题,sidx和sord与您的查询有什么关系


您的问题不是必须以OrderBy(…)结束查询吗?然后是by(…)而不是组合的OrderBy?

如果您想以简单的方式按字符串排序,请下载该库

然而,这是2000行代码,其中大部分是完全冗余的,仅用于排序

自己动手应该不太难,但需要对表达式树有一定的了解。不过我真的帮不了你


编辑:我添加了另一个答案,希望能回答您的实际问题:)

如果您想以简单的方式按字符串排序,请下载该库

然而,这是2000行代码,其中大部分是完全冗余的,仅用于排序

自己动手应该不太难,但需要对表达式树有一定的了解。不过我真的帮不了你


编辑:我添加了另一个答案,希望能回答您的实际问题:)

您可以使用匿名类型:

table.Select(x => new 
             {
               ID = x.type_id,
               Description = x.type_desc
             });
但是,在声明匿名类型的作用域之外,您无法访问该匿名类型的属性(无论如何,没有反射或其他恶意攻击),因此如果要在该函数之外使用结果,您只需创建一个类,并在查询中使用类型初始值设定项创建该类的实例:

public class Foobar
{
  public int ID { get; set; }
  public string Description { get; set; }
}

...

table.Select(x => new Foobar() // Note the difference here
             {
               ID = x.type_id,
               Description = x.type_desc
             });

问题:如果您想以不同的方式命名列,为什么不在声明列属性映射的位置更改它?在LINQtoSQL中,可以随意命名数据库列,但要给属性命名为“ID”或“Description”

您可以使用匿名类型:

table.Select(x => new 
             {
               ID = x.type_id,
               Description = x.type_desc
             });
但是,在声明匿名类型的作用域之外,您无法访问该匿名类型的属性(无论如何,没有反射或其他恶意攻击),因此如果要在该函数之外使用结果,您只需创建一个类,并在查询中使用类型初始值设定项创建该类的实例:

public class Foobar
{
  public int ID { get; set; }
  public string Description { get; set; }
}

...

table.Select(x => new Foobar() // Note the difference here
             {
               ID = x.type_id,
               Description = x.type_desc
             });

问题:如果您想以不同的方式命名列,为什么不在声明列属性映射的位置更改它?在LINQtoSQL中,可以随意命名数据库列,但要给属性命名为“ID”或“Description”

我应该更清楚地重新问我的问题。我已经有分拣工作了。我想以“ID”和“Description”的列名返回结果,而不是实际的列名“type\u ID”和“type\u desc”。在SQL语句中使用as子句很容易。我如何使用Select操作符完成同样的事情。我应该更清楚地重新问我的问题。我已经有分拣工作了。我想以“ID”和“Description”的列名返回结果,而不是实际的列名“type\u ID”和“type\u desc”。在SQL语句中使用as子句很容易。如何使用Select运算符完成相同的操作。请参阅对朱利安的评论。请参阅对朱利安的评论。谢谢。实际上,我想使用我的函数作为aThanks。实际上我想把我的函数用作