使用带有别名的LINQ查询自动补全

本文关键字:查询 LINQ 别名 | 更新日期: 2023-09-27 18:09:28

我使用自动补全与LINQ查询。当我不为列使用别名时,代码可以工作,但当我使用别名时,代码会出现错误。下面是有效的代码:

var suggestions = from v in db.ValueDocument
                          select v.HeaderTitle;
var namelist = suggestions.Where(n => n.ToLower().StartsWith(term.ToLower()));
return this.Json(namelist, JsonRequestBehavior.AllowGet);

如果我把查询改为下面,它会得到一个错误。

var suggestions = from v in db.ValueDocument
                           select new { Header = v.HeaderTitle };

我得到的错误与匿名类型有关。

如果有人能给我指出正确的方向,那就太好了。谢谢!

使用带有别名的LINQ查询自动补全

LINQ没有为你的别名建议提供对象模型。

我将为这个别名ValueDocument创建一个模型:

public class ValueDocumentAlias
{
     public string Header {get;set;}
}

然后修改代码如下:

var suggestions = from v in db.ValueDocument
                  select new ValueDocumentAlias{ Header=v.HeaderTitle };
var namelist = suggestions.Where(n => n.Header.ToLower().StartsWith(term.ToLower()));
return this.Json(namelist, JsonRequestBehavior.AllowGet);