ASP.NET EnqityDataSource WhereParameters создает новое свойство

Я пытаюсь заполнить GridView, используя EntityDataSource (код позади), мне нужно иметь возможность сортировать GridView. Однако, когда я сортирую, я получаю сообщение об ошибке: Свойство с именем 'aspnet_Users.UserId1' не существует в метаданных для типа объекта Так что я полагаю, что это потому, что я генерирую параметр where в коде позади:

ActiveEnqDataSource.WhereParameters.Add(new SessionParameter("aspnet_Users.UserId", TypeCode.Object, "UserName"));

Полный код:

ActiveEnqDataSource.ConnectionString = db.Connection.ConnectionString;
             ActiveEnqDataSource.DefaultContainerName = "Entities";
             ActiveEnqDataSource.EntitySetName = "Enquiries";
             ActiveEnqDataSource.Include = "UserCars.CarModel.CarMake, Category, aspnet_Users";

             ActiveEnqDataSource.EnableUpdate = true;
             ActiveEnqDataSource.EnableInsert = true;
             ActiveEnqDataSource.EnableDelete = true;
             ActiveEnqDataSource.AutoGenerateWhereClause = true;


             ActiveEnqDataSource.WhereParameters.Add(new SessionParameter("aspnet_Users.UserId", TypeCode.Object, "UserName"));

Какие-либо предложения? Большое тебе спасибо! Сам вид сетки отображается отлично, единственное, что я не могу отсортировать, добавляю любые «гдепараметры», добавляю 1 к свойству, например, UserId1, EnquiryStatus1, ProdauctName1. и т.д...


person Alex    schedule 31.03.2010    source источник
comment
Где параметры для фильтрации, а не для сортировки, не так ли? Вы пытаетесь отсортировать GridView с помощью LinkButtons в GridViewHeader? Если это так, было бы полезно, если бы вы могли предоставить фрагмент разметки GridView. В коде, который вы предоставили до сих пор, я вообще не вижу никакой сортировки. Или вы имеете в виду, что получаете эту ошибку, как только добавляете параметр WhereParameter? Работает ли это без фильтра «Где» по имени пользователя?   -  person Slauma    schedule 01.04.2010
comment
Да, он отлично работает без пункта where, предназначенного для фильтрации. Разметка стандартная, сортировка включена с помощью контрольного тега. На самом деле я решил это, поместив предложение where в разметку, а не в код программной части. Это работает. Однако вопрос остается открытым, почему он не работает из-за кода :)   -  person Alex    schedule 01.04.2010


Ответы (2)


Я получил аналогичную ошибку, потому что я добавлял предложение where каждый раз, когда страница возвращалась. Удаление моего кода, который генерировал предложение where внутри оператора IsPostback, устранило проблему:

if (!IsPostBack) {
    // code to add where parameters
}
person Dhaulagiri    schedule 07.02.2013

Я получил ту же ошибку, когда использовал разметку для определения параметра Where, а затем добавил тот же параметр в код. Где-то в конце строки была добавлена ​​1 в конце имени параметра.

person dawidg    schedule 09.10.2011