Как добавить элементы в Combobox из Entity Framework?



У меня есть такой код:



    private void FillCombobox()
{
using (InventoryEntities c = new InventoryEntities(Properties.Settings.Default.Connection))
{
List<Customer> usepurposes = c.Customers.ToList();
DataTable dt = new DataTable();
dt.Columns.Add("id");
dt.Columns.Add("name");
foreach (Customer usepurpose in usepurposes)
{
dt.Rows.Add(usepurpose.id, usepurpose.name);
}
comboBox1.ValueMember = dt.Columns[0].ColumnName;
comboBox1.DisplayMember = dt.Columns[1].ColumnName;
comboBox1.DataSource = dt;

}
}


И я вызываю этот метод в:



    private void frmBillIn_Load(object sender, EventArgs e)
{
FillCombobox();
}


Когда я запускаю свое приложение, combobox не будет отображать клиентов (элементы).



Просто покажите модель.Заказчик



В чем проблема??



Я пробовал много решений, но ни одно из них не работает.

728   3  

3 ответов:

Вам не нужно смешивать два мира-Мир Entity Framework и мир наборов данных. Свяжите напрямую:

    using (InventoryEntities c = new InventoryEntities(Properties.Settings.Default.Connection))
    {
        comboBox1.DataSource    = c.Customers;
        comboBox1.ValueMember   = "id";
        comboBox1.DisplayMember = "name";
    }

Если это не работает, то имя столбца может отличаться от " name "("имя", возможно?).

Если вы используете "using", вам нужно поместить ToList() для оценки перед тесным соединением. use ItemsSource, ValueMember и DisplayMember чувствительны к регистру

using (InventoryEntities c = new InventoryEntities())
    {
        comboBox1.ItemsSource   = c.Customers.toList();
        comboBox1.ValueMemberPath   = "Id";
        comboBox1.DisplayMemberPath = "Name";
    }

Надеюсь, что это поможет.

См. следующий пример. (ссылки на имена = > DAL=уровень доступа к данным, projectEntities = имя набора сущностей) Надеюсь, это поможет..

List itemsList = new List ();

            using (DAL.projectEntities en = new DAL.projectEntities())
            {
                foreach (var item in en.tableName.Where(a => a.tableName != null).ToList())
                {
                    itemsList.Add(item.tableFieldName);
                }                                   
            }

            comboboxTable.ItemsSource = itemsList;

Comments

    Ничего не найдено.