0

我知道有很多关于这个主题的帖子,但似乎没有一个对我有用。

我正在尝试将 linq 查询转换为我的 Telerik gridview 可接受的对象。

是)我有的:

    var allProjectItems = from x in db.DateItems.AsEnumerable()
      where
        x.Date.ProjectId == projectId
      select new
      {
          ItemDate = (DateTime?)x.Date.ItemDate,
          LastName =
            ((from Users in db.Users
              where
                Users.UserId == x.Date.AddedByUserId
              select new
              {
                  Users.Lastname
              }).FirstOrDefault().Lastname),
          DateItemId = x.DateItemId,
          DateItem1 = x.DateItem1,
          DateValue = x.DateValue,
          DateId = x.DateId,
          DateType = x.DateType
      };

我尝试将 .AsEnumerable() 添加到查询中的每个表中,但我仍然无法将查询用于 gridview 或使用 CopyToDataTable 方法转换为数据表。我还尝试指定请求的属性,例如 x.Field("ProjectId") 但 Field 不是一个选项。

任何人都可以帮忙吗?谢谢

4

1 回答 1

1

当您真正想知道在网格视图中选择了哪个对象时,选择匿名类型会让您感到沮丧。

只需选择您的 DataItem 并将其绑定到您的 gridview,然后在 gridview 上设置您的绑定以显示您想要在 gridview 中显示的属性的列。

//Obviously this is simplified and doesn't include your users stuff, but I think you get the idea.

var allProjectItems = (from x in db.DateItems
  where
    x.Date.ProjectId == projectId
  select x).ToList();

您必须在 gridview 上设置绑定以显示您想要的数据。至于用户业务,我会在 DataItem 上设置一个部分类,该类将使用导航属性来获取用户并返回您想要的值。

于 2013-08-13T21:15:33.603 回答