简体   繁体   English

对带有别名的LINQ查询使用自动完成功能

[英]Using autocomplete with LINQ query with an alias

I'm using autocomplete with a LINQ query. 我在使用LINQ查询的自动完成功能。 The code works when I don't use an alias for the column but gets an error when I use an alias. 当我不为该列使用别名时,代码起作用,但是当我使用别名时,出现错误。 Here is the code that works: 这是有效的代码:

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);

If I change the query to below it gets an error. 如果我将查询更改为以下,则会出现错误。

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

The error I'm getting has to do with the AnonymousType. 我遇到的错误与AnonymousType有关。

If anyone could point me in the right direction that would be fantastic. 如果有人能指出我正确的方向,那就太好了。 Thanks! 谢谢!

LINQ doesn't have an object model for your aliased suggestions. LINQ没有用于别名建议的对象模型。

I would create a model for this aliased ValueDocument: 我将为此别名的ValueDocument创建一个模型:

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

Then modify your code to look like this: 然后修改您的代码,如下所示:

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);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM