【问题标题】:Linq/Lambda - Question with RIA ServicesLinq/Lambda - RIA 服务的问题
【发布时间】:2011-06-02 21:46:34
【问题描述】:

我有什么:

1)。我有一个列表框,这个列表框代表类别列表

2)。此列表框在其数据模板中还有另一个列表框,它是每个类别中的板列表

3)。我使用 RIA 服务从数据库中获取数据,并使用 Linq/Lambda 语句进行查询

4)。数据库中的数据来自 2 个表 a)。具有所有类别和 2) 的类别。板,其中包含每个类别的所有板。

5)。到目前为止我有这些(在域服务中)

public IQueryable<discussion_category> GetDiscussion_category()
{
    return this.ObjectContext.discussion_category;
}

public IQueryable<discussion_board> GetDiscussion_boardsByCategory(int CategoryID)
{
    return this.ObjectContext.discussion_boards.Where(e => e.CategoryID == CategoryID);
}

public IQueryable<discussion_board> GetDiscussion_board()
{
    return this.ObjectContext.discussion_board;
}

6)。但我希望能够做到以下几点,(可能正在使用加入?有人可以帮我做陈述吗?或任何其他想法?)

我想做的事:

1)。我想获取数据,使 xaml 绑定类似于第一个类别,然后是其板列表,然后是第二类及其板列表等。 2)。我希望数据像

Category 1
  Board 1
  Board 2
  Board 3
Category 2
  Board 4
  Board 5
  Board 6
etc

问题: 如何使用 Linq/lambda 语句实现这一点?

【问题讨论】:

  • 您是否希望创建一种树形视图,即 -Category --Board1 --Board2 ?
  • 是的,就像使用 Lambda 语句的数组树
  • 如果是这样,那么这可能会有所帮助:这可能就是您要寻找的东西:stackoverflow.com/questions/269523/…
  • 不,我不使用 TreeView 而是使用 ListBoxes

标签: c# linq service lambda ria


【解决方案1】:

你试过按类别分组吗?

以下是一些很好的分组示例: http://msdn.microsoft.com/en-us/vcsharp/aa336754

【讨论】:

    【解决方案2】:

    你可以设置一个Dictionary&lt;Discussion_category, List&lt;Discussion_board&gt;&gt;

    然后在您的数据模板中将 ListBoxes 相应地绑定到此字典。为了生成此 Dictionary,请执行以下操作:

    var q = GetDiscussion_category().Select(c => 
                    new{
                         Category = c,
                         Boards = GetDiscussion_boardsByCategory(c.Id).Select(b => b).ToList()
                       }).ToDictionary(i => i.Category, i => i.Boards);
    

    编辑:您需要考虑查询延迟。以上是一段通用代码,用于生成您指定的那种数据结构。

    编辑:另外,为了使用 Dictionary&lt;&gt;,您需要确保 Discussion_category 实现 Equals()GetHashcode()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多