我是新手链接并且正在跟随How to bind LINQ data to dropdownlist尝试使用LINQ将我的数据绑定到下拉列表但是我收到错误“数据绑定直接存储查询(DbSet,DbQuery,DbSqlQuery)不支持。而是使用数据填充DbSet,例如通过调用DbSet上的Load,然后绑定到本地数据。对于WPF绑定到DbSet.Local。对于WinForms绑定到DbSet.Local.ToBindingList()。“我按照代码示例,所以我不知道我做错了什么或如何解决它。任何人都可以请求,因为这是使用LINQ的第二天。
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();
}
答案 0 :(得分: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();
答案 1 :(得分:0)
你可以尝试:
ddlItemType.DataSource = (from t in db.ItemTypes
select new { t.ID, t.Name }).ToList()
答案 2 :(得分: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));
}
致电:
列表项(YourDropdownListID);