0

私はリンクするのが初めてで、LINQ データをドロップダウン リストにバインドする方法に従って、LINQを使用してデータをドロップダウン リストにバインドしようとしましたが、「ストア クエリ (DbSet、DbQuery、DbSqlQuery) に直接データ バインドする」というエラーが表示されます。サポートされていません。代わりに、たとえば DbSet で Load を呼び出して、DbSet にデータを入力してから、ローカル データにバインドします。WPF の場合は DbSet.Local にバインドします。WinForms の場合は DbSet.Local.ToBindingList() にバインドします。" コード例に従ったので、何が間違っているのか、それを修正する方法がわかりません。これはLINQを使用して2日目なので、誰でもアドバイスしてください。

            using (var db = new FullContext())
            {
                ddlItemType.DataSource = from t in db.ItemTypes
                                         select new { t.ID, t.Name };
                ddlItemType.DataTextField = "Name";
                ddlItemType.DataValueField = "ID";
                ddlItemType.DataBind();
            }
4

3 に答える 3

1

あなたはbinding dropdown with query instead of data object. ステートメントはクエリを返しますが、実際のデータは返しません。インスタンスリストのデータオブジェクトにバインドする必要があります。

クエリを変更

ddlItemType.DataSource = from t in db.ItemTypes
     select new { t.ID, t.Name };

データソースへ

ddlItemType.DataSource =  (from t in db.ItemTypes
     select new { t.ID, t.Name }).ToList();
于 2012-11-28T04:20:44.457 に答える
0

試すことができますか:

ddlItemType.DataSource = (from t in db.ItemTypes
                          select new { t.ID, t.Name }).ToList()
于 2012-11-28T04:19:24.630 に答える
0
public static void ListItem(DropDownList container) {
        DbDataContext db = new DbDataContext();
        var rs = from t in db.ItemTypes
                         select new { t.ID, t.Name };

        foreach (var r in rs)
            container.Items.Add(new ListItem(t.ID + " - " + t.Name, t.ID));
}

呼び出す :

ListItem(あなたのドロップダウンリストID);

于 2012-11-28T08:26:48.967 に答える