如何从实体模型中获取列数据

本文关键字:获取 数据 实体模型 | 更新日期: 2023-09-27 18:06:38

我试图获得一列数据,并把它塞进一个组合框,但不能让它工作。有人能帮我一下吗?

代码:

test_DataEntities db = new test_DataEntities();
DataGrid test = new DataGrid();
test.ItemsSource = db.testTbls;
cmbWorkOrder.ItemsSource = test.Columns[2];

如何从实体模型中获取列数据

您可以尝试:

cmbWorkOrder.ItemsSource = (test.ItemsSource as IEnumerable<testTblEntity>)
    .Select(t => t.PropertyToDisplayInComboBox);

返回一个IEnumerable<T>,其中T是您想要在组合框中显示的属性类型(例如string)。我希望绑定到test.ItemsSource将执行查询以从DB中获取实体到内存中,然后绑定到cmbWorkOrder.ItemsSource仅从内存集合中读取其数据,并且不会再次命中数据库。虽然我肯定不是。

编辑

也许这样更简洁一些:

test_DataEntities db = new test_DataEntities();
DataGrid test = new DataGrid();
List<testTblEntity> list = db.testTbls.ToList(); // executes the query
test.ItemsSource = list;
cmbWorkOrder.ItemsSource = list.Select(t => t.PropertyToDisplayInComboBox);

您现在可以控制查询何时实际执行。在第一个例子中,它将取决于绑定引擎何时绑定网格,何时将组合框绑定到您的数据,这可能取决于XAML中控件的顺序(假设它是WPF)。