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 式を提供することはありません。実際には、各アイテムに適用されたときに true または false を返す関数を提供する必要があります。

次のようなラムダ式を使用して、簡潔で読みやすい方法でこれを行うことができます。

x => x.dbParentID == ID

each/current itemxはどこにありますか。

于 2013-08-12T13:06:31.170 に答える
2

ラムダ式を使用する必要があります。

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 サンプルを参照してください

于 2013-08-12T13:06:36.213 に答える