ASP.NET EnqityDataSourceWhereParameters,创建新属性

发布于 2024-08-27 06:36:45 字数 1139 浏览 6 评论 0原文

我正在尝试使用 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"));

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

I am trying to populate GridView, using EntityDataSource(code behind), I need to able to sort GridView. However when I sort i get error:
A property with name 'aspnet_Users.UserId1' does not exist in metadata for entity type
So I beleive it is because I generate where parameter in code behind:

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

Full code is :

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

Any suggestions? Thank you very much! The gridview itself renders perfectly, only thing I cannot sort it, any "whereParameters" I add, Add 1 to the property e.g UserId1,EnquiryStatus1, ProdauctName1. etc...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

2024-09-03 06:36:45

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

if (!IsPostBack) {
    // code to add where parameters
}

I got a similar error because I was adding the where clause each time the page was posted back. Dropping my code that generated the where clause inside an IsPostback statement fixed the problem:

if (!IsPostBack) {
    // code to add where parameters
}
眼泪都笑了 2024-09-03 06:36:45

当我使用标记定义Where参数并且然后在代码中添加相同的参数时,我遇到了同样的错误。在此过程中,参数名称末尾添加了 1。

I got the same error when I used markup to define a Where parameter AND then I added the same parameter in code. Somewhere along the line, the 1 at the end of the parameter name was added.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文