我在数据库中有一堆数据,我想为其编写搜索功能.问题是我得到了很多重复.数据以名称和姓氏结构,我想只发送一个唯一的两个,所以如果我有两个名字为Foo,姓氏只有一个会显示.
无论我如何看待它,我总是回到我需要比较它们.
var names = db.People
.Where(r => r.Name.Contains(q))
.OrderBy(r=> r.Name)
*Psuedo-Code*
if((this.Name==next.Name)&&(this.surSame==next.Surname)
toss next data and loop to next
*Psuedo-Code*
.Take(5);
Run Code Online (Sandbox Code Playgroud)
也许有点乱,但你明白我想要实现的目标.我能以某种方式做到这一点还是有更好的方法去做?
Ann*_* L. 10
你可以这样做:
var names = db.People
.Where(r => r.Name.Contains(q))
.Select(r => new { Name = r.Name, Surname = r.Surname })
.Distinct()
.Take(5);
Run Code Online (Sandbox Code Playgroud)
但如果这不起作用,因为你需要整个人的记录,你只想要第一个,我已经成功完成了这样的事情:
var names = db.People
.Where(r => r.Name.Contains(q))
.GroupBy(r => new { Name = r.Name, Surname = r.Surname })
.Select(g => g.First())
.Take(5);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
298 次 |
| 最近记录: |