使用Entity Framework保存组合框值

时间:2016-07-21 09:47:33

标签: c# entity-framework combobox

这个问题看起来很简单,但是当我从组合框中保存所选项目时,我得到了这个结果

{ user_name = Amanda, user_id = 1 }

这里是我加载组合框的代码片段

   //Task list ----> Load  users (Responsible person) into a combo box
    private void ComboResponsiblePerson()
    {
        //Get  list of users into the combo box
        //Task Tab
        BindingSource ResponsibleUser = new BindingSource();

        ResponsibleUser.DataSource = db.users.Select(_user => new
        {
            _user.user_name,_user.user_id
        }).ToList();

        if (ResponsibleUser != null)
        {

            cbResponsiblePerson.DataSource = ResponsibleUser;

            cbResponsiblePerson.DisplayMember = "user_name";
            //cbResponsiblePerson.d
            cbResponsiblePerson.ValueMember = "user_id";
        }

    }

这是我的代码片段,用于获取组合框的选定项

task.responsible_person = cbResponsiblePerson.SelectedItem.ToString();

Task.Responsible_person是一个字符串属性。

这里我只想获取用户名。

2 个答案:

答案 0 :(得分:1)

那是因为cbResponsiblePerson.SelectedItem是查询返回的匿名对象之一。在其上执行ToString()打印对象。如果您想要名称,则可能需要将匿名类型定义为实际类型。

如果您使用的是WinForms,则可以执行以下操作:

cbResponsiblePerson.GetItemText(cbResponsiblePerson.SelectedItem)

答案 1 :(得分:0)

为什么在启动时{0} ResponsibleUser检查{。}}。

获取null

user_name

获得cbResponsiblePerson.Text

user_id

您的DataSource具有Ananymouse Type成员,您可以使用Reflection来获取值:

cbResponsiblePerson.SelectedValue