';其中';语句转换为Sql

本文关键字:Sql 其中 语句 转换 | 更新日期: 2023-09-27 18:27:31

你好,我使用LinQ到sql链接,我需要凝胶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

';其中';语句转换为Sql

你很接近。

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

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

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

您可以通过使用Lambda表达式(例如:)以简洁易读的方式来完成此操作

x => x.dbParentID == ID

其中x每个/当前项

您需要使用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示例,了解有关您还可以使用哪些功能的更多信息。

相关文章: