C# Linq查询中的If语句
我试图对dropdownlist进行排序,仅当选择了特定id时,它在数据库中的输入方式才准确。否则我希望它们按升序排序。我不知道如何添加在选择特定Id时不排序列表的最后一个组件。到目前为止,我的情况如下:C# Linq查询中的If语句,c#,asp.net,sql,linq,C#,Asp.net,Sql,Linq,我试图对dropdownlist进行排序,仅当选择了特定id时,它在数据库中的输入方式才准确。否则我希望它们按升序排序。我不知道如何添加在选择特定Id时不排序列表的最后一个组件。到目前为止,我的情况如下: var items = (from p in _db.Funds where p.DesignationId == id orderby p.Name ascending
var items = (from p in _db.Funds
where p.DesignationId == id
orderby p.Name ascending
select new { p.id, p.Name });
return items;
你是说像这样的
var items =
(from p in _db.Funds
where p.DesignationId == id
select new { p.id, p.Name });
if (id != "some id")
{
items = items.OrderBy(p => p.Name);
}
return items.ToList();
这将是一个解决办法
var items = (from p in _db.Funds
where p.DesignationId == id
orderby p.id == "the id" ? p.Name : null
select new { p.id, p.Name });
return items;
您所说的“如何准确地输入数据库”是什么意思?除非指定了排序,否则应该将数据库表中的行视为无序method to execute your query.p.DesignationId是我希望它基于的Id。这很有效,但如果您事先确定了排序,并将其设置为
orderby
是LINQ to SQL查询的一部分,而不是之后执行的LINQ to Objects查询,它的性能会更好吗?@evanmcdonnal排序将作为Linq到SQL/-Entities查询,所以。。。如果选择了否id
,则显示无序的所有内容;如果选择了一些id
,只需按Name
顺序显示这些项目即可。是这样吗?