我正在使用实体框架从数据库中检索数据。
结果由在搜索文本框中输入的值过滤。
var searchKey = this.TextBoxSearch.Text;
var products = this.databaseManager.Products.Where(x => x.Name.Contains(searchKey)).Select(x => x.Name);
然后结果按字母顺序排序。
products = products.OrderBy(x => x);
现在我想以一种方式对结果进行排序;开头包含搜索键的结果排在文本中其他位置包含搜索键的结果之前。
例子:
当用户键入“iP”时 ,过滤结果应如下所示:
iPhone 4S、iPhone 5、多合一iP手机......
当然,在正常情况下,All in one iP phone是列表中的第一项。因为结果是按字母顺序排序的。但就我而言。用户的 搜索关键字必须占主导地位。
这可以使用 C# Linq [.NET 4.5] 还是在 SQL Server 中实现?如果这可以通过 SQL 查询来完成,那也很好。