LinQ中的'where'语句为Sql

时间:2013-08-12 13:04:57

标签: c# sql linq

你好我使用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

2 个答案:

答案 0 :(得分:3)

你关闭了。

你需要做的是这样的事情:

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

ul_LeftMenu.DataBind();

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

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

x => x.dbParentID == ID

其中x每个/当前项目

答案 1 :(得分:2)

您需要使用Lambda expression

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,了解有关您还可以使用的其他信息的更多信息。