#c# #json #asp.net-mvc #linq #autocomplete
#c# #json #asp.net-mvc #linq #автозаполнение
Вопрос:
Я использую автозаполнение с запросом 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 };
Ошибка, которую я получаю, связана с AnonymousType .
Если бы кто-нибудь мог указать мне правильное направление, это было бы фантастически. Спасибо!
Ответ №1:
В 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);