1

我正在尝试使用 EntityDataSource(后面的代码)填充 GridView,我需要能够对 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"));

有什么建议么?非常感谢!网格视图本身完美呈现,只有我无法对其进行排序,我添加的任何“whereParameters”,将 1 添加到属性,例如 UserId1、EnquiryStatus1、ProdauctName1。ETC...

4

2 回答 2

1

我遇到了类似的错误,因为每次回发页面时我都添加了 where 子句。删除在 IsPostback 语句中生成 where 子句的代码解决了这个问题:

if (!IsPostBack) {
    // code to add where parameters
}
于 2013-02-07T01:31:58.827 回答
0

当我使用标记定义 Where 参数然后我在代码中添加相同的参数时,我得到了同样的错误。沿线某处,添加了参数名称末尾的 1。

于 2011-10-09T23:04:21.727 回答