如何使用linq和Entity Framework访问表中特定列的所有值



有人能帮我吗?我想使用linq在组合框中显示特定列中的所有值。我试着去做,但我想不通。我是linq的新手,找不到做这件事的方法

如果您想显示字符串产品名称的列表并能够检索它们的int id,您可以例如:

combo.DisplayMember = "DisplayColumnName";
combo.ValueMember = "IdColumnName";
combo.DataSource = context.TableName.Select(r => 
new KeyValuePair<int, string>(r.IdColumnName, r.DisplayColumnName)).ToList();

您需要将TableName、DisplayColumnName和IdColumnName替换为实际值。

要获得用户选择的ID(例如用于进一步的数据库查询(,您可以:

var id = (int)combo.SelectedValue;

如果你想要用户选择的字符串:

var s = ((KeyValuePair)combo.SelectedItem).Value;

这是有效的。

var context = new LoginTest();
var login = context.SignUps
.Select(c => new { c.id, c.Name });
comboBox1.DataSource = login.ToList();
comboBox1.ValueMember = "id";
comboBox1.DisplayMember = "Name";

最新更新