C# 在同一linq查询中使用distinct和startswith
我需要为ASP.net MVC应用程序在LINQ中编写以下SQL查询:C# 在同一linq查询中使用distinct和startswith,c#,sql,asp.net,linq,C#,Sql,Asp.net,Linq,我需要为ASP.net MVC应用程序在LINQ中编写以下SQL查询: 从FDCostCenterRequest中选择不同的(成本中心),其中成本中心类似于“10%” FDCostCenterRequest中成本中心列的定义如下: var suggestions = from cc in db.FDCostCenterRequests.Where(cc => cc.COST_CENTER.StartsWith(searchString)).GroupBy(x=>x.COST_CENT
从FDCostCenterRequest中选择不同的(成本中心),其中成本中心类似于“10%”
FDCostCenterRequest中成本中心列的定义如下:
var suggestions = from cc in db.FDCostCenterRequests.Where(cc => cc.COST_CENTER.StartsWith(searchString)).GroupBy(x=>x.COST_CENTER).Select(g=>g.Key)
select cc;
公共字符串成本中心{get;set;}
我是这样写的:
IEnumerable<FDCostCenterRequest> suggestions =
from cc in db.FDCostCenterRequests.Where(cc =>
cc.COST_CENTER.StartsWith(searchString)).ToList() select cc;
var selected = from costList in suggestions select costList.COST_CENTER.Distinct();
List<string> dropDownInfos = new List<string>();
foreach (var item in selected)
{
dropDownInfos.Add(item.ToString());
}
IEnumerable建议=
从db.FDCostCenterRequests.Where中的cc(cc=>
cc.COST_CENTER.StartsWith(searchString)).ToList()选择cc;
var selected=从建议中的成本列表中选择成本列表.COST_CENTER.Distinct();
List dropdownfos=新列表();
foreach(所选中的var项目)
{
添加(item.ToString());
}
但是当我试图查看dropDownInfos内容时,我得到了每个记录的
System.Linq.Enumerable+d_u81
1[System.Char]`。我做错了什么 您不是从每个中心获得不同的成本中心,而是将每个中心转换为组成成本中心的一组不同字符
您可以用不同的方式插入查询,但如果您不在查询语法和方法语法之间进行如此频繁的切换,则会更容易:
var query = db.FDCostCenterRequests
.Where(cc => cc.COST_CENTER.StartsWith(searchString))
.Select(cc => cc.COST_CENTER)
.Distinct();
您并不是从每个中心获得不同的成本中心,而是将每个中心转换为组成成本中心的一组不同字符 您可以用不同的方式插入查询,但如果您不在查询语法和方法语法之间进行如此频繁的切换,则会更容易:
var query = db.FDCostCenterRequests
.Where(cc => cc.COST_CENTER.StartsWith(searchString))
.Select(cc => cc.COST_CENTER)
.Distinct();
由于
string
实现了IEnumerable,因此您的Distinct
正在对其进行操作。将查询的其余部分用括号括起来,以便Distinct
对查询进行操作
var selected = (from costList in suggestions
select costList.COST_CENTER).Distinct();
由于
string
实现了IEnumerable,因此您的Distinct
正在对其进行操作。将查询的其余部分用括号括起来,以便Distinct
对查询进行操作
var selected = (from costList in suggestions
select costList.COST_CENTER).Distinct();
我是通过以下方式得到的:
var suggestions = from cc in db.FDCostCenterRequests.Where(cc => cc.COST_CENTER.StartsWith(searchString)).GroupBy(x=>x.COST_CENTER).Select(g=>g.Key)
select cc;
我知道这有点离谱,但还是要感谢你的回答。我是通过以下方式得到的:
var suggestions = from cc in db.FDCostCenterRequests.Where(cc => cc.COST_CENTER.StartsWith(searchString)).GroupBy(x=>x.COST_CENTER).Select(g=>g.Key)
select cc;
我知道这有点绕圈子,但还是要感谢您的回答。您要向dropdowninfos添加哪些属性?您要向dropdowninfos添加哪些属性?