0

您好,我使用 LinQ to sql Link 我需要凝胶具有 ParentID==X 服务器代码的项目列表

  ul_LeftMenu.DataSource = data.TABLE_MENU_ITEMs.ToList();
  ul_LeftMenu.DataBind();

我需要一些这样的想法

      int id =3;
      ul_LeftMenu.DataSource = data.TABLE_MENU_ITEMs.ToList(dbParentID==ID);
      ul_LeftMenu.DataBind();

or 

      ul_LeftMenu.DataSource = data.TABLE_MENU_ITEMs.ToList().Where(dbParentID==ID);
      ul_LeftMenu.DataBind();

我只是能找到正确的方法来做到这一点

这是我的数据库

    id          ParentID      Image            Yrl
    1   GENERAL     3       GENERA L.png    www.youtube.com
    2   PRODUCTS    3       Products.png    www.youtube.com
    3   CATEGORIES  3       Categories.png  www.google.com
    4   DISCOUNTS   3      Discounts.png    www.youtube.com
    5   ARTICLES    3       Articles.png    www.youtube.com
4

2 回答 2

3

你很近。

你需要做的是这样的:

ul_LeftMenu.DataSource = data
    .TABLE_MENU_ITEMs
    .Where(x => x.dbParentID == ID);

ul_LeftMenu.DataBind();

使用 Linq 时,Where您实际上并没有像您尝试的那样提供真/假表达式。您实际上需要提供一个函数,该函数在应用于每个项目时将返回 true 或 false。

您可以使用Lambda 表达式以简洁易读的方式执行此操作- 例如:

x => x.dbParentID == ID

每个/当前项目x在哪里。

于 2013-08-12T13:06:31.170 回答
2

您需要使用Lambda 表达式

ul_LeftMenu.DataSource = 
    data.TABLE_MENU_ITEMs.Where(x => x.dbParentID == ID).ToList();

或查询语法

ul_LeftMenu.DataSource = (from item in data.TABLE_MENU_ITEMs
                          where item.dbParentID == ID
                          select item).ToList();

您可能不需要ToList(). 如果您收到有关某些绑定错误的异常,则必须使用ToList()创建副本。

查看101 LINQ Samples以获取有关您还可以使用什么的更多信息。

于 2013-08-12T13:06:36.213 回答